IronOCR 操作指南 流 如何使用 IronOCR 用 C# 阅读 PDF. Curtis Chau 已更新:一月 10, 2026 下载 IronOCR NuGet 下载 DLL 下载 Windows 安装程序 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 This article was translated from English: Does it need improvement? Translated View the article in English IronOCR 使您只需一行代码就能用 C# 从 PDF 文件中提取文本,支持所有 PDF 版本,并通过其基于 Tesseract 的引擎提供准确的 OCR 结果。 PDF 是 "便携式文档格式 "的缩写。它是由 Adobe 公司开发的一种文件格式,可以保留任何源文件的字体、图像、图形和布局,而与创建这些文件时使用的应用程序和平台无关。 PDF 文件通常用于以一致的格式共享和查看文档,而无需考虑打开它们的软件或硬件。 IronOCR 可处理各种版本的 PDF 文档,从较早的 PDF 1.0 规范到最新的 PDF 2.0 标准。 快速入门:几秒钟内完成 PDF 文件的 OCR 识别 通过构建指向 PDF 的 OcrPdfInput 然后调用 Read 即可使用 IronOCR 快速配置 OCR。 本例演示了使用 IronOCR 从 PDF 中提取文本。 立即开始使用 NuGet 创建 PDF 文件: 使用 NuGet 包管理器安装 IronOCR PM > Install-Package IronOcr 复制并运行这段代码。 using var result = new IronOcr.IronTesseract().Read(new IronOcr.OcrPdfInput("document.pdf", PdfContents.TextAndImages)); 部署到您的生产环境中进行测试 立即开始在您的项目中使用 IronOCR,免费试用! 免费试用30天 最小工作流程(5 个步骤) 下载用于读取 PDF 的 C# 库 准备用于读取的 PDF 文档 使用 PDF 文件路径构建OcrPdfInput对象 使用Read方法对导入的PDF文件执行OCR识别。 通过提供页面索引列表读取特定页面 如何阅读整个 PDF 文件? 首先实例化 `IronTesseract` 类以执行 OCR。 然后,使用"using"语句创建一个`OcrPdfInput`对象,并将PDF文件路径传递给它。 最后,使用`Read`方法执行 OCR。 这种方法适用于扫描的 PDF(基于图像)和可搜索的 PDF(基于文本),适合 [ 从各种 PDF 类型中提取文本](https://ironsoftware.com/csharp/ocr/examples/csharp-pdf-ocr/)。 ```csharp /* :path=/static-assets/ocr/content-code-examples/how-to/input-pdfs-read-pdf.cs */ using IronOcr; // Instantiate IronTesseract IronTesseract ocrTesseract = new IronTesseract(); // Add PDF using var pdfInput = new OcrPdfInput("Potter.pdf"); // Perform OCR OcrResult ocrResult = ocrTesseract.Read(pdfInput); // Access the extracted text string extractedText = ocrResult.Text; System.Console.WriteLine(extractedText); ``` 大多数情况下,无需指定 DPI 属性。 但是,在构建`OcrPdfInput`时提供较高的 DPI 值可以提高读取精度。 默认 DPI 设置通常足以满足大多数标准 PDF 文档的要求,但专业文档可能需要进行调整。 何时应调整 DPI 设置? 在处理低分辨率扫描文件或包含小文本的 PDF 文件时,DPI(每英寸点数)设置至关重要。 为获得最佳效果,请考虑在[时调整 DPI 设置](https://ironsoftware.com/csharp/ocr/how-to/dpi-setting/): - 处理低于 200 DPI 的扫描文件 - 处理历史或档案 PDF - 处理复杂布局或小字体 - 遇到默认设置的准确性问题 对于大多数 OCR 操作,建议使用 300 DPI,而对于文本非常小或细节非常复杂的文档,可能需要使用 600 DPI。 除了 PDF 之外,IronOCR 还支持哪些文件格式? IronOCR 可全面支持 PDF 以外的多种文件格式。 您可以[处理各种格式的图像](https://ironsoftware.com/csharp/ocr/how-to/input-images/),包括: - 标准照片的 JPEG/JPG 格式 - PNG 用于透明图像 - 用于多页文档的 TIFF 文件 - 用于未压缩图像的 BMP - 简单图形的 GIF 此外,IronOCR 可以直接从内存中处理 [PDF 流](https://ironsoftware.com/csharp/ocr/examples/ocr-for-pdf-stream/),适用于网络应用程序和云服务。 ### 使用 PDF 内容类型 在处理 PDF 时,您可以通过指定内容类型来优化性能。 `PdfContents` 枚举允许您锁定特定内容: ```csharp // For text-only PDFs (faster processing) var textOnlyPdf = new OcrPdfInput("document.pdf", PdfContents.Text); // For image-only PDFs (scanned documents) var imageOnlyPdf = new OcrPdfInput("scanned.pdf", PdfContents.Images); // For mixed content (default) var mixedPdf = new OcrPdfInput("mixed.pdf", PdfContents.TextAndImages); ``` 如何阅读 PDF 中的特定页面? 从 PDF 文档中读取特定页面时,请指定导入的页面索引号。 为此,请在构建 `OcrPdfInput` 时将页面索引列表传递给 `PageIndices` 参数。 请注意,页面索引采用从零开始的编号。 在处理只有某些页面包含相关信息的大型文档时,该功能尤其有用。 ```csharp :path=/static-assets/ocr/content-code-examples/how-to/input-pdfs-read-pdf-pages.cs ``` 为什么页码从 0 开始? 零基索引是 C# 和大多数编程语言的标准约定。 这意味着第一页是索引 0,第二页是索引 1,以此类推。 这种与数组索引的一致性使开发人员更容易以编程方式处理页面集合。 从人类可读的页码(1、2、3......)转换为索引时,只需从页码中减去 1 即可。 如何阅读非连续页面? 使用 IronOCR 可以直接阅读非连续页面。 只需将所需的页面索引添加到您的列表中,顺序不限。 例如: ```csharp // Read pages 1, 3, 5, and 10 (using zero-based indices) List pageIndices = new List() { 0, 2, 4, 9 }; // Or use LINQ for range-based selection var evenPages = Enumerable.Range(0, 10).Where(x => x % 2 == 0).ToList(); ``` OCR 引擎将只处理指定的页面,从而显著提高大型文档的性能。 如果指定了无效的页码会怎样? 如果您指定的页面索引超过了文档的页数,IronOCR 将抛出异常。 在处理之前实施错误处理或验证页面计数。 您可以在执行 OCR 之前检查 PDF 的总页数,以确保您的索引有效。 如何 OCR PDF 的特定区域? <!-- --> <!-- 说明:显示逐步过程的截图 --> 通过缩小阅读范围,可以显著提高阅读效率。 为此,请指定导入 PDF 中需要阅读的精确区域。 在下面的代码示例中,IronOCR 只专注于提取章节编号和标题。 这种技术类似于[为图像定义 OCR 区域](https://ironsoftware.com/csharp/ocr/how-to/ocr-region-of-an-image/),可以提高速度和准确性。 ```csharp :path=/static-assets/ocr/content-code-examples/how-to/input-pdfs-read-specific-region.cs ``` 如何确定正确的矩形坐标? 找到正确的坐标需要了解 PDF 的坐标系。 `Rectangle` 构造函数需要四个参数:`X`(水平位置)、`Y`(垂直位置)、`Width` 和 `Height`。 所有测量值均以像素为单位。 带有标尺功能的 PDF 查看器或调试实用程序等工具可以帮助确定准确的坐标。 此外,还可以通过小幅调整反复试验来完善您的选择区域。 要获得更精确的区域定义,您可以使用 [highlight texts for debugging](https://ironsoftware.com/csharp/ocr/examples/highlight-texts-for-debugging/) 功能来直观显示正在处理的区域。 我能否在一次操作中指定多个区域? 是的,IronOCR 在一次 OCR 操作中支持多个区域。 只需在数组中添加多个 `Rectangle` 对象即可: ```csharp Rectangle[] scanRegions = { new Rectangle(50, 50, 200, 100), // Header region new Rectangle(50, 200, 500, 300), // Main content region new Rectangle(50, 550, 200, 50) // Footer region }; ``` 每个区域将分别处理,处理结果将按指定顺序合并。 为什么使用特定区域 OCR 而不是全页面? 针对特定区域的 OCR 具有以下几个优势: - **性能**:处理较小区域的速度明显更快 - **准确性**:专注于特定区域,减少无关内容的干扰 - **结构**:更可靠地从表单和表格中提取数据 - **成本效率**:更少的处理时间意味着更低的计算成本 在处理发票、表单或报告等数据出现在可预测位置的结构化文档时,这种方法尤为重要。 对于复杂的文档结构,请探索[阅读文档中的表格](https://ironsoftware.com/csharp/ocr/how-to/read-table-in-document/),了解专门的表格提取技术。 有哪些高级 PDF OCR 功能? IronOCR 为 PDF 处理提供了基本文本提取之外的其他功能。 您可以[从扫描文件创建可搜索的 PDF 文件](https://ironsoftware.com/csharp/ocr/how-to/searchable-pdf/),在保留原始布局的同时添加一个文本层用于搜索和复制。 该库还支持[多线程,以更快地处理大型 PDF 文件集](https://ironsoftware.com/csharp/ocr/how-to/async/)。 对于希望在其 .NET 应用程序中开始使用 OCR 的开发人员来说,探索 [简单 OCR 示例](https://ironsoftware.com/csharp/ocr/examples/simple-csharp-ocr-tesseract/)为了解 IronOCR 的功能和最佳实践打下了坚实的基础。 ### 处理复杂的 PDF 场景 在处理具有挑战性的 PDF 文档时,IronOCR 提供了多项高级功能: 1.**图像预处理**:应用[图像过滤器](https://ironsoftware.com/csharp/ocr/how-to/image-quality-correction/)以提高文本清晰度 2.**多种语言**:同时处理包含[多种语言](https://ironsoftware.com/csharp/ocr/how-to/ocr-multiple-languages/)的文档 3.**自定义配置**:针对特定文档类型微调 OCR 设置 4.**导出选项**:将结果保存为各种格式,包括可搜索的 PDF 和 [hOCR HTML](https://ironsoftware.com/csharp/ocr/how-to/html-hocr-export/) 这些功能使 IronOCR 成为满足企业级 PDF 处理要求的全面解决方案。 常见问题解答 如何用 C# 从 PDF 文件中提取文本? 只需一行代码,您就可以使用 IronOCR 从 PDF 文件中提取文本。只需创建一个 IronTesseract 实例,然后使用 OcrPdfInput 的读取方法即可:`using var result = new IronOcr.IronTesseract().Read(new IronOcr.OcrPdfInput("document.pdf", PdfContents.TextAndImages));`.IronOCR 可处理扫描的 PDF(基于图像)和可搜索的 PDF(基于文本)。 哪些 PDF 版本支持文本提取? IronOCR 支持所有 PDF 版本,从较早的 PDF 1.0 规范到最新的 PDF 2.0 标准。OCR 引擎基于 Tesseract 技术构建,无论您使用的是哪种 PDF 版本,都能确保文本提取的准确性。 我可以只阅读 PDF 中的特定页面而不是整个文档吗? 是的,IronOCR 允许您通过提供页面索引来读取 PDF 中的特定页面。您可以使用 OcrPdfInput 对象指定要从哪些页面提取文本,而不是处理整个文档,从而提高 OCR 处理大型文档的效率。 在 PDF 文件上进行 OCR 的最基本工作流程是什么? IronOCR 的最小工作流程包括 5 个步骤:1)下载 C# 库;2)准备 PDF 文档;3)使用 PDF 文件路径创建 OcrPdfInput 对象;4)使用读取方法执行 OCR;5)可选择指定页面索引进行选择性读取。 何时应调整 PDF OCR 的 DPI 设置? 虽然 IronOCR 的默认 DPI 设置可以很好地处理大多数标准 PDF,但在处理低分辨率扫描文档(低于 200 DPI)或包含小文本的 PDF 时,您应该考虑调整 DPI。在 OcrPdfInput 结构中设置更高的 DPI 可以显著提高专业文档的阅读准确性。 OCR 引擎能否同时处理扫描和可搜索的 PDF? 是的,IronOCR 可以有效处理扫描 PDF(基于图像)和可搜索 PDF(基于文本)。基于 Tesseract 的引擎可自动处理不同的 PDF 类型,使其成为从各种 PDF 格式中提取文本的多功能工具,而无需采用不同的方法。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 审核者 Jeffrey T. Fritz 首席项目经理 - .NET 社区团队 Jeff 也是 .NET 和 Visual Studio 团队的首席项目经理。他是 .NET Conf 虚拟会议系列的执行制片人,并主持“Fritz and Friends”直播节目,每周两次与观众一起谈论技术并编写代码。Jeff 撰写研讨会、演示文稿并计划包括 Microsoft Build、Microsoft Ignite、.NET Conf 和 Microsoft MVP 峰会在内的最大型微软开发者活动的内容。 准备开始了吗? Nuget 下载 5,246,844 | 版本: 2025.12 刚刚发布 免费 NuGet 下载 总下载量:5,246,844 查看许可证