PDF 文件是最常见的商业文件之一。在某些情况下,我们可能需要以编程方式阅读扫描的 PDF 文档。从扫描的 PDF 文件中提取文本的困难导致开发了一些工具,这些工具可以更轻松地从此类 PDF 文档中读取和检索文本。根据文档的内容,出于多种原因,从 PDF 文件中提取文本可能很有用。在本文中,我们将学习如何在 C# 中对 PDF 文档进行 OCR 和从 PDF 中提取文本。
本文将涵盖以下主题:
OCR PDF 到文本 C# API
我们将使用 Aspose.OCR for .NET API 对 PDF 文档执行 OCR。它可以识别扫描图像、智能手机照片、屏幕截图和图像区域。 API 以最流行的文档和数据交换格式返回已识别的文本结果。除了将图像转换为文本外,API 还可以根据扫描件创建可搜索的 PDF。此外,它能够自动更正已识别文本中的拼写错误。
API 提供了 AsposeOcr 类,该类提供了执行 OCR 操作的各种方法。它提供了 RecognizePdf(string, DocumentRecognitionSettings) 方法来从提供的 PDF 文档中识别文本。 API 的 DocumentRecognitionSettings 类提供 PDF 识别过程的设置。 RecognitionResult 类表示图像识别的结果。
请下载 API 的 DLL 或使用 NuGet 安装它。
PM> Install-Package Aspose.OCR
OCR PDF 和在 C# 中从 PDF 中提取文本
我们可以按照下面给出的步骤对PDF文档进行OCR并提取识别出的文本:
- 首先,创建 AsposeOcr 类的一个实例。
- 接下来,初始化 DocumentRecognitionSettings 类的一个对象。
- 然后,指定要用于 OCR 的语言。
- 之后,通过调用 RecognizePdf() 方法获取 RecognitionResult。它以图像路径和 DocumentRecognitionSettings 对象作为参数。
- 最后,遍历 RecognitionResult 列表并显示已识别的文本。
以下示例代码展示了如何在 C# 中对 PDF 文档进行 OCR 和提取识别的文本。
// 此代码示例演示如何对 PDF 文档进行 OCR 识别并提取识别的文本。
// 初始化 PCR 引擎
AsposeOcr recognitionEngine = new AsposeOcr();
// 初始化识别设置
DocumentRecognitionSettings recognitionSettings = new DocumentRecognitionSettings();
// 为 OCR 指定语言。默认多国语言
recognitionSettings.Language = Language.Eng;
// 识别 PDF 中的文本
List<RecognitionResult> results = recognitionEngine.RecognizePdf("C:\\Files\\sample.pdf", recognitionSettings);
// 显示识别的文本
foreach (RecognitionResult result in results)
{
Console.WriteLine(result.RecognitionText);
}
在 PDF 上执行 OCR 并在 C# 中保存文本
我们可以按照以下步骤对PDF文档进行OCR并保存识别出的文字:
- 首先,创建 AsposeOcr 类的一个实例。
- 接下来,初始化 DocumentRecognitionSettings 类的一个对象。
- 然后,指定要用于 OCR 的语言。
- 之后,调用 RecognizePdf() 方法获取 RecognitionResult。它以图像路径和 DocumentRecognitionSettings 对象作为参数。
- 最后,使用 SaveMultipageDocument() 方法保存文本。它以输出文件路径、SaveFormat 和 RecognitionResult 对象作为参数。
以下示例代码展示了如何在 C# 中对 PDF 文档进行 OCR 并将识别的文本保存。
// 此代码示例演示如何对 PDF 文档进行 OCR 识别并提取识别的文本。
// 初始化 PCR 引擎
AsposeOcr recognitionEngine = new AsposeOcr();
// 初始化识别设置
DocumentRecognitionSettings recognitionSettings = new DocumentRecognitionSettings();
// 为 OCR 指定语言。默认多国语言
recognitionSettings.Language = Language.Eng;
// 识别 PDF 中的文本
List<RecognitionResult> results = recognitionEngine.RecognizePdf("C:\\Files\\sample.pdf", recognitionSettings);
// 保存识别出的文字
AsposeOcr.SaveMultipageDocument("C:\\Files\\OCR_result.txt", SaveFormat.Text, results);
OCR PDF 和在 C# 中将扫描的 PDF 转换为 Word
我们可以按照前面提到的步骤对扫描的PDF文档进行OCR,并将识别的文本保存在Word文档中。然而,我们只需要在最后一步指定 SaveFormat.Docx。
以下示例代码展示了如何在 C# 中对 PDF 进行 OCR 并将识别的文本另存为 Word 文档。
// 此代码示例演示如何对 PDF 文档进行 OCR 并将识别的文本保存为 DOCX。
// 初始化 PCR 引擎
AsposeOcr recognitionEngine = new AsposeOcr();
// 初始化识别设置
DocumentRecognitionSettings recognitionSettings = new DocumentRecognitionSettings();
// 为 OCR 指定语言。默认多国语言
recognitionSettings.Language = Language.Eng;
// 识别 PDF 中的文本
List<RecognitionResult> results = recognitionEngine.RecognizePdf("C:\\Files\\sample.pdf", recognitionSettings);
// 将识别的文本保存为 DOCX
AsposeOcr.SaveMultipageDocument("C:\\Files\\OCR_result.docx", SaveFormat.Docx, results);
OCR PDF 和在 C# 中将 PDF 转换为 JSON
我们可以按照前面提到的步骤对PDF文档进行OCR,并将识别出的文本保存在JSON文件中。但是,我们只需要在最后一步指定 SaveFormat.Json。
以下示例代码展示了如何在 C# 中对 PDF 进行 OCR 并将识别的文本保存为 JSON 文件。
// 此代码示例演示如何对 PDF 文档进行 OCR 并将识别的文本保存为 JSON。
// 初始化 PCR 引擎
AsposeOcr recognitionEngine = new AsposeOcr();
// 初始化识别设置
DocumentRecognitionSettings recognitionSettings = new DocumentRecognitionSettings();
// 为 OCR 指定语言。默认多国语言
recognitionSettings.Language = Language.Eng;
// 识别 PDF 中的文本
List<RecognitionResult> results = recognitionEngine.RecognizePdf("C:\\Files\\sample.pdf", recognitionSettings);
// 将识别的文本保存为 JSON
AsposeOcr.SaveMultipageDocument("C:\\Files\\OCR_result.json", SaveFormat.Json, results);
获得免费评估许可证
您可以 获得免费的临时许可证 来试用该库,而没有评估限制。
结论
在本文中,我们学习了如何在 C# 中对 PDF 文档执行 OCR 以及从 PDF 中提取文本。我们还看到了如何将识别的文本保存为 TXT、DOCX 和 JSON 文件。此外,您可以使用 文档 了解有关 Aspose.OCR for .NET API 的更多信息。如有任何歧义,请随时在我们的 论坛 上与我们联系。