在许多业务工作流中,扫描的 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 命名空间,其中包括 OcrTextRecognitionOptionsOcrTextAbsorber 和语言枚举。该库通过 NuGet 分发。使用以下命令进行安装:

Install-Package Aspose.PDF

欲了解更多信息,请访问 Aspose.PDF 产品页面

使用 Aspose.PDF OCR 在 C# 中提取扫描 PDF 的文本

  1. 将扫描的 PDF 加载到 Aspose.Pdf.Document 中。
  2. 配置 OCR 选项(语言、分辨率、页面分隔符)。
  3. OcrTextAbsorber 应用于文档的页面集合。
  4. 检索识别的文本并保存。

此示例演示了如何加载扫描的 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# 中的安装和设置

  1. 在 Visual Studio 中打开您的 .NET 解决方案。
  2. 打开 Package Manager Console 并运行 Install-Package Aspose.PDF
  3. 在类文件的顶部添加 using Aspose.Pdf;using Aspose.Pdf.Ocr;
  4. 确保您拥有临时或完整许可证;如果没有,输出可能会包含水印。

有关许可详情,请参阅临时许可证页面

C# 中的逐步实现

本节回答什么? 提取文本的确切代码步骤是什么?

  1. 初始化文档
var pdfPath = "path/to/scanned.pdf";
var document = new Document(pdfPath);
  1. 创建 OCR 选项
var ocrOptions = new OcrTextRecognitionOptions
{
    Language = OcrLanguage.English,
    Resolution = 300,
    PageSeparator = "\n--- Page Break ---\n"
};
  1. 运行吸收器
var absorber = new OcrTextAbsorber(ocrOptions);
document.Pages.Accept(absorber);
  1. 访问提取的文本
string extractedText = absorber.Text;
  1. 保存或处理文本
System.IO.File.WriteAllText("output.txt", extractedText);

代码遵循上述综合示例的相同流程,但将逻辑拆分为易于理解的步骤。

获取免费许可证

通过请求临时许可证在此免费评估 Aspose.PDF: https://purchase.aspose.com/temporary-license/

免费额外资源

结论

本指南带您了解如何使用 Aspose.PDF OCR 在 C# 中从扫描的 PDF 中提取文本。您学习了如何安装库、配置 OCR 选项以提高准确性、实现干净的提取管道,以及对大型文档进行性能优化。通过这些技术,任何 .NET 开发人员都可以将仅包含图像的 PDF 转换为可搜索、可编辑的文本流。

FAQs

  1. 如何在 C# 中使用 Aspose.PDF 从扫描的 PDF 中提取文本?
    创建一个 Document,配置 OcrTextRecognitionOptions,在页面上运行 OcrTextAbsorber,并读取 Text 属性。

  2. Aspose.PDF 支持哪些 OCR 语言?
    该库通过 OcrLanguage 枚举支持多种语言,包括英语、法语、德语、西班牙语、中文等。

  3. 如何提升低分辨率扫描的 OCR 准确性?
    提高 Resolution(例如 300 DPI),选择正确的语言,并考虑对图像进行预处理以增强对比度。

  4. 并行处理大型 PDF 是否安全?
    是的,可以将文档拆分为页面范围,在单独的线程上处理每个范围,同时监控内存使用情况。

  5. OCR 功能需要什么许可证?
    只要拥有有效的 Aspose.PDF for .NET 许可证,即可完整使用 OCR 功能;也可以获取临时许可证进行评估。

  6. 在哪里可以找到有关 OCR 设置的更多文档?
    详细的 OCR 配置指南可在 Aspose.PDF OCR 设置文档中找到,地址为 https://docs.aspose.com/pdf/net/

阅读更多