使用 IRONOCR 如何 OCR PDF:使用 C# .NET OCR 从扫描文档中提取 PDF 文本 Kannapat Udonpant 已更新:2026年1月5日 下载 IronOCR NuGet 下载 DLL 下载 Windows 安装程序 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 扫描 PDF 文档是 .NET 开发人员面临的一个共同挑战:文本仅以图像形式存在,无法进行搜索、复制或编程处理。 光学字符识别 (OCR) 技术通过将扫描图像和图像文件转换为可编辑和可搜索的数据来解决这个问题--将扫描的纸质文件、数码相机拍摄的图像或任何可搜索的 PDF 文件转换为机器可读文本。 无论是将纸质档案数字化、自动提取数据,还是构建人工智能驱动的文档处理应用程序,使用光学字符识别转换 PDF 文件的能力都是至关重要的。 IronOCR for .NET 是一个功能强大的 .NET OCR 库,它提供了一种简化的 C# PDF OCR 方法。 该.NET 光学字符识别库基于 Tesseract OCR 引擎,具有更高的准确性,只需几行代码即可从任何 PDF 文档中提取文本。 IronOCR是一个功能强大的.NET OCR 库,它提供了一种简化的 C# PDF OCR 方法。 该.NET 光学字符识别库基于 Tesseract OCR 引擎,具有更高的准确性,只需几行代码即可从任何 PDF 文档中提取文本。 如何用 C# 在 PDF 上执行 OCR? 首先,通过 NuGet 包管理器安装 IronOCR 库,将这个功能强大的 OCR 引擎添加到系统中: Install-Package IronOcr 下面的示例演示了如何加载 PDF 文件并识别整个扫描文档中的文本: using IronOcr; // Initialize the OCR engine IronTesseract ocr = new IronTesseract(); // Load the PDF and perform OCR using var pdfInput = new OcrPdfInput("scanned-report.pdf"); OcrResult result = ocr.Read(pdfInput); // Output the extracted text string extractedText = result.Text; Console.WriteLine(extractedText); using IronOcr; // Initialize the OCR engine IronTesseract ocr = new IronTesseract(); // Load the PDF and perform OCR using var pdfInput = new OcrPdfInput("scanned-report.pdf"); OcrResult result = ocr.Read(pdfInput); // Output the extracted text string extractedText = result.Text; Console.WriteLine(extractedText); Imports IronOcr ' Initialize the OCR engine Dim ocr As New IronTesseract() ' Load the PDF and perform OCR Using pdfInput As New OcrPdfInput("scanned-report.pdf") Dim result As OcrResult = ocr.Read(pdfInput) ' Output the extracted text Dim extractedText As String = result.Text Console.WriteLine(extractedText) End Using $vbLabelText $csharpLabel IronTesseract 类作为主要的 OCR 引擎,封装了 Tesseract 5,并针对 .NET Core 和 .NET Framework 应用程序进行了优化。 OcrPdfInput 对象在内部处理 PDF 加载和页面渲染,无需手动转换图像格式。 当您调用 Read 方法时,OCR 流程会分析每一页,并返回一个 OcrResult 结果,其中包含以字符串形式提取的文本,以及有关段落、行、单词及其位置的结构化数据。 然后,用户可以将输出保存到 TXT 文件、目标文件夹、Word 文档,或使用 API 进一步处理数据。 输入 !a href="/static-assets/ocr/blog/net-ocr-pdf/net-ocr-pdf-1.webp">How to OCR a PDF:使用 C# .NET OCR PDF 从扫描文档中提取文本:图片 1 - PDF 输入示例。 输出 !a href="/static-assets/ocr/blog/net-ocr-pdf/net-ocr-pdf-2.webp">How to OCR a PDF:使用 C# .NET OCR PDF 从扫描文件中提取文本:图像 2 - 控制台输出。 如何阅读 PDF 中的特定页面? 如果只针对需要的页面,处理大型文本文档的效率会更高。 向 PageIndices 参数传递页面索引列表,以便有选择地转换扫描的 PDF 页面: using IronOcr; using System.Collections.Generic; IronTesseract ocr = new IronTesseract(); // Specify pages to process (zero-based indexing) List<int> targetPages = new List<int>() { 0, 2, 4 }; using var pdfInput = new OcrPdfInput("lengthy-document.pdf", PageIndices: targetPages); OcrResult result = ocr.Read(pdfInput); // Save or process the OCR results Console.WriteLine(result.Text); using IronOcr; using System.Collections.Generic; IronTesseract ocr = new IronTesseract(); // Specify pages to process (zero-based indexing) List<int> targetPages = new List<int>() { 0, 2, 4 }; using var pdfInput = new OcrPdfInput("lengthy-document.pdf", PageIndices: targetPages); OcrResult result = ocr.Read(pdfInput); // Save or process the OCR results Console.WriteLine(result.Text); Imports IronOcr Imports System.Collections.Generic Dim ocr As New IronTesseract() ' Specify pages to process (zero-based indexing) Dim targetPages As New List(Of Integer)() From {0, 2, 4} Using pdfInput As New OcrPdfInput("lengthy-document.pdf", PageIndices:=targetPages) Dim result As OcrResult = ocr.Read(pdfInput) ' Save or process the OCR results Console.WriteLine(result.Text) End Using $vbLabelText $csharpLabel 请注意,IronOCR 使用基于零的索引,因此第 0 页代表 PDF 文档的第一页。 在处理只有特定部分包含相关可搜索数据的多页扫描文档时,这种选择性方法可减少处理时间和内存消耗。 如何从特定区域提取数据? 发票处理、表格数字化和文档解析通常需要从定义区域而非整页中提取文本。 此 OCR 工具允许您使用 ContentAreas 参数创建有针对性的扫描,该参数接受一个矩形数组,指定要处理的区域: using IronOcr; using IronSoftware.Drawing; using System; IronTesseract ocr = new IronTesseract(); // Define the scan region (x, y, width, height in pixels) Rectangle[] invoiceFields = { new Rectangle(130, 290, 250, 50) // Invoice number area }; using var pdfInput = new OcrPdfInput("invoice.pdf", ContentAreas: invoiceFields); OcrResult result = ocr.Read(pdfInput); // Extract and output the structured data Console.WriteLine(result.Text); using IronOcr; using IronSoftware.Drawing; using System; IronTesseract ocr = new IronTesseract(); // Define the scan region (x, y, width, height in pixels) Rectangle[] invoiceFields = { new Rectangle(130, 290, 250, 50) // Invoice number area }; using var pdfInput = new OcrPdfInput("invoice.pdf", ContentAreas: invoiceFields); OcrResult result = ocr.Read(pdfInput); // Extract and output the structured data Console.WriteLine(result.Text); Imports IronOcr Imports IronSoftware.Drawing Imports System Dim ocr As New IronTesseract() ' Define the scan region (x, y, width, height in pixels) Dim invoiceFields As Rectangle() = { New Rectangle(130, 290, 250, 50) ' Invoice number area } Using pdfInput As New OcrPdfInput("invoice.pdf", ContentAreas:=invoiceFields) Dim result As OcrResult = ocr.Read(pdfInput) ' Extract and output the structured data Console.WriteLine(result.Text) End Using $vbLabelText $csharpLabel Rectangle 构造函数接受四个参数:X 位置、Y 位置、宽度和高度--均以页面左上角的像素为单位。 这种有针对性的文本识别方法将 OCR 引擎集中在特定的内容区域,而不是处理无关的背景元素,从而大大提高了速度和准确性。 在批量处理发票时,结合区域提取和结果页面迭代,从多个 PDF 文件中建立可编辑的结构化数据。 输入 !a href="/static-assets/ocr/blog/net-ocr-pdf/net-ocr-pdf-3.webp">How to OCR a PDF:使用 C# .NET OCR PDF 从扫描文件中提取文本:图片 3 - 样本发票。 输出 !a href="/static-assets/ocr/blog/net-ocr-pdf/net-ocr-pdf-4.webp">How to OCR a PDF:使用 C# .NET OCR PDF 从扫描文件中提取文本:图像 4 - 提取的数据输出。 如何提高扫描文档的 OCR 准确性? 现实世界中扫描的纸质文档往往存在质量问题:页面歪斜、分辨率低或扫描软件产生的数字噪音。 IronOCR 包括预处理过滤器,可以解决这些难题,帮助将图像质量问题转化为准确的文本转换: using IronOcr; IronTesseract ocr = new IronTesseract(); using var input = new OcrInput(); // Load PDF with higher DPI for better text recognition input.LoadPdf("poor-quality-scan.pdf", DPI: 300); // Apply image correction filters to process scanned images input.Deskew(); // Straighten rotated pages input.DeNoise(); // Remove scanning artifacts OcrResult result = ocr.Read(input); Console.WriteLine(result.Text); using IronOcr; IronTesseract ocr = new IronTesseract(); using var input = new OcrInput(); // Load PDF with higher DPI for better text recognition input.LoadPdf("poor-quality-scan.pdf", DPI: 300); // Apply image correction filters to process scanned images input.Deskew(); // Straighten rotated pages input.DeNoise(); // Remove scanning artifacts OcrResult result = ocr.Read(input); Console.WriteLine(result.Text); Imports IronOcr Dim ocr As New IronTesseract() Using input As New OcrInput() ' Load PDF with higher DPI for better text recognition input.LoadPdf("poor-quality-scan.pdf", DPI:=300) ' Apply image correction filters to process scanned images input.Deskew() ' Straighten rotated pages input.DeNoise() ' Remove scanning artifacts Dim result As OcrResult = ocr.Read(input) Console.WriteLine(result.Text) End Using $vbLabelText $csharpLabel DPI 参数控制 OCR 处理前呈现 PDF 页面的分辨率--较高的值(200-300 DPI)可提高小文本文档的准确性。 Deskew 方法可自动检测和纠正页面旋转,而 DeNoise 则可去除干扰光学字符识别 (OCR) 的斑点和伪影。 对于需要额外图像调整的文档,IronOCR 提供了对比度增强、二值化和其他编辑图像质量的工具。 该.NET OCR 库还可以通过在输入构建过程中接受凭证来处理受密码保护的 PDF 文档。 该软件支持 125 种以上的语言包,可对国际文件进行 OCR 识别。 除标准 PDF 文件外,IronOCR 还可以处理 PNG、TIFF(包括多页 TIFF)和其他图像格式文件。 部署可在 Windows、Linux、macOS 以及包括 Azure 和 Docker 容器在内的云平台上无缝运行。 结论 IronOCR 将复杂的 PDF 文本提取任务转化为简单明了的操作。 从基本的文档阅读到有针对性的区域提取,以及对具有挑战性的扫描图像进行预处理,该 OCR 库都能处理复杂的技术问题,同时提供可在 .NET Core 和 .NET Framework 上运行的简洁 C# API。 上述代码示例展示了核心功能,但 IronOCR 还进一步扩展了条形码和 QR 码读取、可搜索 PDF 创建(将扫描的 PDF 文件转换为可编辑的可搜索文档)以及结构化数据输出(包括置信度分数和文本定位)。 探索用于高级实现的完整 API 参考,或在试用期间试用免费的专业版功能。 购买许可证即可在 .NET 应用程序生产环境中部署 IronOCR,或与我们的工程团队聊天以获得针对具体项目的指导。 准备好在您的 .NET 应用程序中执行 OCR了吗? 从免费试用版开始,探索完整的功能集并下载 SDK。 常见问题解答 什么是 OCR,为什么它对 .NET 开发人员很重要? OCR 或光学字符识别是一种将扫描图像和 PDF 文件转换为可编辑和可搜索文本的技术。这对于需要以编程方式处理文档图像、实现搜索和复制文本等功能的 .NET 开发人员来说至关重要。 IronOCR 如何增强 OCR 流程? IronOCR 在 Tesseract OCR 引擎的基础上增强了 OCR 过程,提供了更高的准确性和简化的方法,以便从 C# 中的扫描文档中提取文本。 IronOCR 能否直接处理 PDF 文件以提取文本? 是的,IronOCR 可以直接处理 PDF 文件,开发人员只需使用几行 C# 代码即可从扫描的 PDF 文档中提取文本。 IronOCR 可以处理哪些类型的文档? IronOCR 可以处理各种文档,包括扫描的纸质文档、数码相机拍摄的图像以及可搜索的 PDF 文件,并将其转换为机器可读的文本。 IronOCR 适合自动执行数据提取任务吗? 当然,IronOCR 是自动执行数据提取任务的理想选择,因为它可以将扫描图像转换为结构化的可编辑数据,从而简化工作流程并提高工作效率。 使用 IronOCR 为人工智能驱动的文档处理应用提供了哪些优势? IronOCR 具有将文档转换为机器可读文本的优势,这对于构建需要文本识别和分析能力的人工智能驱动的文档处理应用程序至关重要。 在 C# 项目中实现 IronOCR 有多容易? 在 C# 项目中实施 IronOCR 非常简单,只需几行代码即可集成其 OCR 功能并开始从文档中提取文本。 IronOCR 是否改进了 Tesseract OCR 引擎? 是的,IronOCR 建立在 Tesseract OCR 引擎的基础上,增强了其准确性和性能,提供了卓越的文本识别效果。 IronOCR 可以用于纸质档案数字化吗? 是的,IronOCR 非常适合将纸质档案数字化,因为它可以将扫描的纸质文档转换为可搜索和可编辑的数字文本,从而方便文档管理。 IronOCR 在实现 OCR 时支持哪些编码语言? IronOCR 支持在 C# 中实现 OCR,是在 .NET Framework 中工作的开发人员的强大工具。 Kannapat Udonpant 立即与工程团队聊天 软件工程师 在成为软件工程师之前,Kannapat 在日本北海道大学完成了环境资源博士学位。在攻读学位期间,Kannapat 还成为了车辆机器人实验室的成员,隶属于生物生产工程系。2022 年,他利用自己的 C# 技能加入 Iron Software 的工程团队,专注于 IronPDF。Kannapat 珍视他的工作,因为他可以直接从编写大多数 IronPDF 代码的开发者那里学习。除了同行学习外,Kannapat 还喜欢在 Iron Software 工作的社交方面。不撰写代码或文档时,Kannapat 通常可以在他的 PS5 上玩游戏或重温《最后生还者》。 相关文章 已发布2026年1月21日 OCR C# GitHub 集成:使用 IronOCR 构建文本识别应用程序 OCR C# GitHub 教程:使用 IronOCR 在您的 GitHub 项目中实施文本识别。包括代码示例和版本控制技巧。 阅读更多 已发布2026年1月21日 使用 IronOCR 创建 .NET OCR SDK 使用 IronOCR 的 .NET SDK 创建强大的 OCR 解决方案。简单的 API、企业功能,以及用于文档处理应用程序的跨平台支持。 阅读更多 已更新2025年12月19日 C# 读取 PDF 表单字段:以编程方式提取表单数据 了解如何使用IronPDF在C#中读取PDF表单字段。从可填写PDF中提取文本、复选框、下拉列表等,提供简单的代码示例。 阅读更多 使用 IronOCR 创建 .NET OCR SDKC# 读取 PDF 表单字段:以编...
已发布2026年1月21日 OCR C# GitHub 集成:使用 IronOCR 构建文本识别应用程序 OCR C# GitHub 教程:使用 IronOCR 在您的 GitHub 项目中实施文本识别。包括代码示例和版本控制技巧。 阅读更多
已发布2026年1月21日 使用 IronOCR 创建 .NET OCR SDK 使用 IronOCR 的 .NET SDK 创建强大的 OCR 解决方案。简单的 API、企业功能,以及用于文档处理应用程序的跨平台支持。 阅读更多
已更新2025年12月19日 C# 读取 PDF 表单字段:以编程方式提取表单数据 了解如何使用IronPDF在C#中读取PDF表单字段。从可填写PDF中提取文本、复选框、下拉列表等,提供简单的代码示例。 阅读更多