如何在 C# 中读取扫描文档 | IronOCR

使用 IronOCR 在 C# 中读取扫描文档

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronOCR 使 C# 开发人员能够使用 OCR 技术从扫描的 PDF 和图像中提取文本,只需几行代码就能将不可搜索的基于图像的文档转换为可搜索、可访问的内容。

许多 PDF 文件包含无法搜索的、基于图像的文本。 IronOCR 将其转换为可搜索的内容,使查找特定信息变得更加容易,并增强了文档的可访问性,尤其是对有视觉障碍的个人而言。

自动提取无需手动复制或重新创建文本和图像,从而确保准确性和效率。 这对研究、法律文件和内容创建特别有用,因为在这些领域中,重复使用 PDF 的特定部分很常见。

企业可以从 PDF 文件中提取关键数据进行分析或系统集成,从而简化工作流程。 设计师和营销人员还可以提取图像,以便在各种项目中进行增强和重复使用。

在本教程中,我们将探索OcrPdfInput方法,介绍可用的选项和参数,以展示 IronOCR 如何简化 PDF 文本和图像提取,从而应用于各种应用程序。

要使用此功能,您还必须安装IronOcr.Extensions.AdvancedScan软件包。

<!--说明:显示从扫描文档输入到 OCR 处理再到文本输出的步骤的流程图 -->

快速入门:从扫描的 PDF 或图像中提取文本

只需一行代码,您就可以使用 IronOCR 的 OcrInput.LoadPdfLoadImage 加载扫描的 PDF 或图像,并立即通过 ReadDocument 提取文本。 非常适合希望快速启动并运行 OCR 功能的开发人员。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronOCR

    PM > Install-Package IronOcr

  2. 复制并运行这段代码。

    var text = new IronOcr.IronTesseract().ReadDocument(new IronOcr.OcrInput().LoadPdf("scanned.pdf")).Text;
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronOCR,免费试用!
    arrow pointer

如何从扫描文档中提取文本? 要从文档中的所有图像中提取文本,请使用`ReadDocument`方法。 该方法处理文档并返回包含提取文本的对象,该对象可通过 `Text` 属性访问。 下面的示例演示了如何使用此方法处理[示例 TIFF](/static-assets/ocr/how-to/read-scanned-document/potter.tiff)文件。 IronOCR 支持多种文件格式的扫描。 对于图像,您可以使用 [JPG、PNG、GIF、TIFF 和 BMP 格式](https://ironsoftware.com/csharp/ocr/how-to/input-images/),而 PDF 支持包括 [ 单页和多页文档](https://ironsoftware.com/csharp/ocr/how-to/input-pdfs/)。 该库使用先进的 [Tesseract 5 技术](https://ironsoftware.com/csharp/ocr/examples/csharp-tesseract-5/),以确保所有支持格式的高准确性。 [{i:( - 目前该方法仅适用于英语、中文、日语、韩语和拉丁字母。 - 在 .NET Framework 上使用高级扫描功能需要项目在 x64 架构上运行。 @@--bracket-close--@@@

输入文档是什么样的? ![《哈利-波特》一书中显示第八章 "死亡派对 "的页面,其中有关于霍格沃茨十月的叙述性文字](/static-assets/ocr/how-to/read-scanned-document/input.webp)。

如何实现 OCR 代码? ```csharp :path=/static-assets/ocr/content-code-examples/how-to/read-scanned-document-read-scanned-document.cs ```

我可以从 OCR 处理中期待什么结果? ![Visual Studio 调试窗口,显示从扫描文档输出的经过 OCR 处理的《哈利-波特》文本](/static-assets/ocr/how-to/read-scanned-document/output.webp)示例 如果您需要对 PDF 文件执行 OCR,只需将`LoadImage`方法替换为`LoadPdf`即可。 这样,IronOCR 就可以用同样的方法处理和提取扫描 PDF 中的文本。 ## 高级文档处理选项 在处理扫描文档时,您通常需要对 OCR 过程进行更多控制。 IronOCR 提供多种高级功能,可增强文本提取结果。 ### 处理多页文档 对于有多个页面的文档,IronOCR 可以高效地进行批处理: ```csharp using IronOcr; var ocr = new IronTesseract(); using var input = new OcrInput(); // Load a multi-page PDF input.LoadPdf("multi-page-document.pdf"); // Process all pages OcrResult result = ocr.ReadDocument(input); // Access individual page results foreach (var page in result.Pages) { Console.WriteLine($"Page {page.PageNumber}: {page.Text}"); } ``` ### 优化 OCR 性能 扫描文件的质量直接影响 OCR 的准确性。 IronOCR for .NET 包含内置 [ 图像优化过滤器](https://ironsoftware.com/csharp/ocr/examples/ocr-image-filters-for-net-tesseract/),可增强文本识别能力: ```csharp using IronOcr; var ocr = new IronTesseract(); using var input = new OcrInput(); // Load and enhance image quality input.LoadImage("low-quality-scan.jpg"); input.Deskew(); // Correct image skew input.DeNoise(); // Remove background noise input.Binarize(); // Convert to black and white OcrResult result = ocr.ReadDocument(input); ``` ### 创建可搜索的 PDF 文件 在处理扫描文档时,最有价值的功能之一是[创建可搜索 PDF](https://ironsoftware.com/csharp/ocr/how-to/searchable-pdf/) 的能力。 这既保持了原始文档的外观,又增加了文字层: ```csharp using IronOcr; var ocr = new IronTesseract(); using var input = new OcrInput(); input.LoadPdf("scanned-document.pdf"); // Process and save as searchable PDF OcrResult result = ocr.ReadDocument(input); result.SaveAsSearchablePdf("searchable-output.pdf"); ``` ## 处理不同的文档类型 IronOCR 擅长处理商业环境中常见的各种文档类型。 无论是处理发票、合同还是历史文档,该库都提供了从不同来源提取数据的专业功能。 ### 处理遗留文档 许多组织都有旧格式的扫描文件档案。 IronOCR 可以高效地处理这些问题,包括支持文档管理系统中常用的 [ 多页 TIFF 文件](https://ironsoftware.com/csharp/ocr/examples/csharp-tesseract-multipage-tiff/)。 ### 语言支持 虽然本示例侧重于英文文本,但 IronOCR 支持[超过 125 种国际语言](https://ironsoftware.com/csharp/ocr/examples/intl-languages/)。 因此,它非常适合处理多语言文档或非英语文档。 ## 文档扫描的最佳实践 在处理扫描文件时达到最佳效果: 1.**扫描质量**:使用最低 300 DPI 的分辨率以获得最佳效果 2.**文件格式**:对于文本文档,TIFF 和 PNG 格式比 JPEG 更能保持质量 3.**预处理**:根据您的文档条件应用适当的过滤器 4.**性能**:对于大批量翻译,请考虑使用[多线程功能](https://ironsoftware.com/csharp/ocr/examples/csharp-tesseract-multithreading-for-speed/)。 ### ABCpdf 常见问题和解决方案 在处理扫描文件时,您可能会遇到各种挑战。 以下是常见问题的解决方案: - **扫描质量差**:在 OCR 处理之前应用增强型过滤器 - **歪曲文档**:使用 `Deskew()` 方法纠正方向 - **混合内容**:如果文档包含文本和非文本元素,则处理特定区域 如需更详细的指导,请浏览我们的[全面的 C# OCR 教程](https://ironsoftware.com/csharp/ocr/tutorials/c-sharp-tesseract-ocr/)或查看[简单的 OCR 示例](https://ironsoftware.com/csharp/ocr/examples/simple-csharp-ocr-tesseract/)以快速入门。 ## 下一步 现在您已经了解了如何从扫描文档中提取文本,您可以探索更高级的功能,如 [ 使任何 PDF 都可搜索](https://ironsoftware.com/csharp/ocr/examples/make-pdf-searchable/)或为网络应用程序处理 [ PDF 流](https://ironsoftware.com/csharp/ocr/examples/ocr-for-pdf-stream/)。 IronOCR 的灵活性使其适用于从简单的文档数字化到复杂的企业文档处理工作流程等各种情况。

常见问题解答

如何用 C# 从扫描的 PDF 中提取文本?

IronOCR 使用 C# 从扫描的 PDF 中提取文本变得简单。使用 LoadPdf 方法导入扫描的 PDF,然后调用 ReadDocument 提取文本。例如:var text = new IronOcr.IronTesseract().ReadDocument(new IronOcr.OcrInput().LoadPdf("scanned.pdf")).Text; 这一行代码加载你的 PDF 并提取所有文本内容。

OCR 库支持哪些文件格式的文本提取?

IronOCR 支持全面的 OCR 扫描文档格式。对于图像,它支持 JPG、PNG、GIF、TIFF 和 BMP 格式。对于 PDF,它可以处理单页和多页文档。该库采用先进的 Tesseract 5 技术,可确保所有支持格式的高准确性。

我需要为 OCR 功能安装额外的软件包吗?

是的,要使用 IronOCR 的全部 OCR 功能,除了 IronOCR 主库之外,还需要安装 IronOcr.Extensions.AdvancedScan 软件包。该扩展包为处理扫描文档提供了增强的扫描功能。

我能否从扫描图像和 PDF 中提取文本?

是的,IronOCR 对扫描图像和 PDF 的处理同样出色。对图像文件(JPG、PNG、GIF、TIFF、BMP)使用 LoadImage 方法,对 PDF 文档使用 LoadPdf 方法。ReadDocument 方法可同时处理这两种输入类型,以提取文本内容。

OCR 如何帮助处理不可搜索的 PDF 文档?

IronOCR 通过使用 OCR 技术提取文本,将不可搜索、基于图像的 PDF 转换为可搜索内容。这种转换使查找文档中的特定信息变得更加容易,并大大提高了文档的可访问性,尤其是对有视觉障碍的人而言。

OCR 文本提取的主要商业应用是什么?

IronOCR 使企业能够从 PDF 中提取关键数据进行分析和系统集成,从而简化工作流程。它尤其适用于处理法律文件、研究论文和自动数据录入。设计人员和营销人员还可以提取图像,以便在各种项目中进行增强和重用。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 5,299,091 | 版本: 2025.12 刚刚发布