在许多业务工作流中,扫描的 PDF 文档必须转换为可搜索或可编辑的文本。Extract Text from Scanned PDFs with Aspose.PDF OCR in C# 教程演示了如何利用 Aspose.PDF for .NET 中集成的 OCR 引擎从基于图像的页面提取纯文本。按照本指南操作,您将获得一个可直接运行的解决方案,能够处理任何扫描的 PDF,无论其大小或语言如何。
使用 Aspose.PDF OCR SDK 从扫描的 PDF 中提取文本
扫描的 PDF 仅包含图像,因此常规的文本提取 API 什么也返回。OCR(光学字符识别)将这些图像转换为机器可读的字符,从而实现索引、数据挖掘和下游处理。在 C# 中自动化 OCR 可消除手动复制粘贴步骤,提高准确性,并能够在大批量文档中扩展。
Aspose.PDF 提供 Aspose.Pdf.Ocr 命名空间,其中包括 OcrTextRecognitionOptions、OcrTextAbsorber 和语言枚举。该库通过 NuGet 分发。使用以下命令进行安装:
Install-Package Aspose.PDF
欲了解更多信息,请访问 Aspose.PDF 产品页面。
使用 Aspose.PDF OCR 在 C# 中提取扫描 PDF 的文本
- 将扫描的 PDF 加载到
Aspose.Pdf.Document中。 - 配置 OCR 选项(语言、分辨率、页面分隔符)。
- 将
OcrTextAbsorber应用于文档的页面集合。 - 检索识别的文本并保存。
此示例演示了如何加载扫描的 PDF,配置 OCR,提取文本,并使用 C# 将结果写入文件。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void RecognizeTextWithOcr()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "input.pdf"))
{
// Configure OCR recognition options
var options = new Aspose.Pdf.Ocr.OcrTextRecognitionOptions
{
Language = Aspose.Pdf.Ocr.OcrLanguage.English,
Resolution = 300,
PageSeparator = "\n\n"
};
// Recognize text from all pages
var absorber = new Aspose.Pdf.Ocr.OcrTextAbsorber(options);
document.Pages.Accept(absorber);
// Save recognized text
System.IO.File.WriteAllText(dataDir + "recognized-text.txt", absorber.Text);
}
}
Aspose.PDF 对此任务重要的功能
- 集成 OCR 引擎 – 无需外部依赖;OCR 引擎位于
Aspose.Pdf.Ocr命名空间。 - 语言选择 –
OcrLanguage枚举允许您指定字典以获得更好的识别。 - 分辨率控制 – 更高的 DPI 可提升字符保真度,尤其是对模糊扫描。
- PageSeparator – 可自定义的字符串,用于在输出文本中分隔页面。
- 线程安全的页面集合 – 允许对大型 PDF 进行并行处理。
这些功能实现了一个强大且单一库的解决方案,可从任何扫描的 PDF 中提取文本。
C# 中的安装和设置
- 在 Visual Studio 中打开您的 .NET 解决方案。
- 打开 Package Manager Console 并运行
Install-Package Aspose.PDF。 - 在类文件的顶部添加
using Aspose.Pdf;和using Aspose.Pdf.Ocr;。 - 确保您拥有临时或完整许可证;如果没有,输出可能会包含水印。
有关许可详情,请参阅临时许可证页面。
C# 中的逐步实现
本节回答什么? 提取文本的确切代码步骤是什么?
- 初始化文档
var pdfPath = "path/to/scanned.pdf";
var document = new Document(pdfPath);
- 创建 OCR 选项
var ocrOptions = new OcrTextRecognitionOptions
{
Language = OcrLanguage.English,
Resolution = 300,
PageSeparator = "\n--- Page Break ---\n"
};
- 运行吸收器
var absorber = new OcrTextAbsorber(ocrOptions);
document.Pages.Accept(absorber);
- 访问提取的文本
string extractedText = absorber.Text;
- 保存或处理文本
System.IO.File.WriteAllText("output.txt", extractedText);
代码遵循上述综合示例的相同流程,但将逻辑拆分为易于理解的步骤。
获取免费许可证
通过请求临时许可证在此免费评估 Aspose.PDF: https://purchase.aspose.com/temporary-license/
免费额外资源
结论
本指南带您了解如何使用 Aspose.PDF OCR 在 C# 中从扫描的 PDF 中提取文本。您学习了如何安装库、配置 OCR 选项以提高准确性、实现干净的提取管道,以及对大型文档进行性能优化。通过这些技术,任何 .NET 开发人员都可以将仅包含图像的 PDF 转换为可搜索、可编辑的文本流。
FAQs
如何在 C# 中使用 Aspose.PDF 从扫描的 PDF 中提取文本?
创建一个Document,配置OcrTextRecognitionOptions,在页面上运行OcrTextAbsorber,并读取Text属性。Aspose.PDF 支持哪些 OCR 语言?
该库通过OcrLanguage枚举支持多种语言,包括英语、法语、德语、西班牙语、中文等。如何提升低分辨率扫描的 OCR 准确性?
提高Resolution(例如 300 DPI),选择正确的语言,并考虑对图像进行预处理以增强对比度。并行处理大型 PDF 是否安全?
是的,可以将文档拆分为页面范围,在单独的线程上处理每个范围,同时监控内存使用情况。OCR 功能需要什么许可证?
只要拥有有效的 Aspose.PDF for .NET 许可证,即可完整使用 OCR 功能;也可以获取临时许可证进行评估。在哪里可以找到有关 OCR 设置的更多文档?
详细的 OCR 配置指南可在 Aspose.PDF OCR 设置文档中找到,地址为 https://docs.aspose.com/pdf/net/。
