使用 IRONOCR PDF 数据提取 .NET:完整开发者指南 Kannapat Udonpant 已发布:十二月 18, 2025 下载 IronOCR NuGet 下载 DLL 下载 Windows 安装程序 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在双子座打开 向 Gemini 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 PDF文档在商业中无处不在; 现代例子包括发票、报告、合同和手册。 但是以编程方式从中提取重要信息可能很棘手。 PDF关注的是外观,而不是数据访问方式。 对于.NET开发人员,IronPDF是一个强大的.NET PDF库,使从PDF文件中提取数据变得容易。 您可以直接从输入的PDF文档中提取文本、表格、表单字段、图像和附件。 无论您是在自动化发票处理、构建知识库还是生成报告,这个库都可以节省大量时间。 本指南将通过实际示例向您介绍如何提取文本内容、表格数据和表单字段值,并在每个代码片段之后进行说明,以便您可以将其适应到自己的项目中。 开始使用 IronPDF 通过NuGet包管理器安装IronPDF只需几秒钟。 打开包管理器控制台并运行: Install-Package IronPDF Install-Package IronPDF 'INSTANT VB TODO TASK: The following line uses invalid syntax: 'Install-Package IronPDF $vbLabelText $csharpLabel 安装后,您可以立即开始处理输入的PDF文档。 这是一个展示IronPDF API简单性的最简.NET示例: using IronPdf; // Load any PDF document var pdf = PdfDocument.FromFile("document.pdf"); // Extract all text with one line string allText = pdf.ExtractAllText(); Console.WriteLine(allText); using IronPdf; // Load any PDF document var pdf = PdfDocument.FromFile("document.pdf"); // Extract all text with one line string allText = pdf.ExtractAllText(); Console.WriteLine(allText); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 这段代码加载一个PDF文件并提取其中的每一段文本。 IronPDF自动处理复杂的PDF结构、表单数据和可能导致其他库问题的编码。 从PDF文档中提取的数据可以保存到文本文件,或进一步处理以进行分析。 实用技巧:您可以将提取的文本保存到 .txt 文件中以便稍后处理,或者解析它以填充数据库、Excel 表格或知识库。 此方法适用于报告、合同或任何您只需要快速获取原始文本的PDF。 提取的文本输出 PDF 数据提取 .NET:完整开发者指南:图 1 - 示例 PDF 及其提取的文本 从PDF文档中提取数据 现实世界中的应用程序通常需要精确的数据提取。 IronPDF提供多种方法来从PDF中特定页面中获取有价值的信息。 在本例中,我们将使用以下PDF: PDF 数据提取 .NET:完整开发者指南:图 2 - 与 PDF 数据提取 .NET:完整开发者指南相关的 6 张图片中的第 2 张 以下代码将从此PDF的特定页面中提取数据,并将结果返回到我们的控制台。 using IronPdf; using System; using System.Text.RegularExpressions; // Load any PDF document var pdf = PdfDocument.FromFile("AnnualReport2024.pdf"); // Extract from selected pages int[] pagesToExtract = { 0, 2, 4 }; // Pages 1, 3, and 5 foreach (var pageIndex in pagesToExtract) { string pageText = pdf.ExtractTextFromPage(pageIndex); // Split on 2 or more spaces (tables often flatten into space-separated values) var tokens = Regex.Split(pageText, @"\s{2,}"); foreach (string token in tokens) { // Match totals, invoice headers, and invoice rows if (token.Contains("Invoice") || token.Contains("Total") || token.StartsWith("INV-")) { Console.WriteLine($"Important: {token.Trim()}"); } } } using IronPdf; using System; using System.Text.RegularExpressions; // Load any PDF document var pdf = PdfDocument.FromFile("AnnualReport2024.pdf"); // Extract from selected pages int[] pagesToExtract = { 0, 2, 4 }; // Pages 1, 3, and 5 foreach (var pageIndex in pagesToExtract) { string pageText = pdf.ExtractTextFromPage(pageIndex); // Split on 2 or more spaces (tables often flatten into space-separated values) var tokens = Regex.Split(pageText, @"\s{2,}"); foreach (string token in tokens) { // Match totals, invoice headers, and invoice rows if (token.Contains("Invoice") || token.Contains("Total") || token.StartsWith("INV-")) { Console.WriteLine($"Important: {token.Trim()}"); } } } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 本示例展示了如何从PDF文档中提取文本,搜索关键信息,并准备将其存储到数据文件或知识库中。 ExtractTextFromPage()方法保持文档的阅读顺序,因此非常适合文档分析和内容索引任务。 PDF 数据提取 .NET:完整开发者指南:图 3 - 从特定页面提取的数据的控制台输出 从PDF文档中提取表格数据 PDF文件中的表格没有原生结构; 它们只是被定位得像表格的文本内容。 IronPDF在提取表格数据时保留布局,因此您可以将其处理成Excel或文本文件。 在本例中,我们将使用这个PDF: PDF 数据提取 .NET:完整开发者指南:图 4 - 与 PDF 数据提取 .NET:完整开发者指南相关的 6 张图片中的第 4 张 我们的目标是提取表格本身的数据,以展示 IronPDF 解析表格数据的能力。 using IronPdf; using System; using System.Text; using System.Text.RegularExpressions; var pdf = PdfDocument.FromFile("example.pdf"); string rawText = pdf.ExtractAllText(); // Split into lines for processing string[] lines = rawText.Split('\n'); var csvBuilder = new StringBuilder(); foreach (string line in lines) { if (string.IsNullOrWhiteSpace(line) || line.Contains("Page")) continue; string[] rawCells = Regex.Split(line.Trim(), @"\s+"); string[] cells; // If the line starts with "Product", combine first two tokens as product name if (rawCells[0].StartsWith("Product") && rawCells.Length >= 5) { cells = new string[rawCells.Length - 1]; cells[0] = rawCells[0] + " " + rawCells[1]; // Combine Product + letter Array.Copy(rawCells, 2, cells, 1, rawCells.Length - 2); } else { cells = rawCells; } // Keep header or table rows bool isTableOrHeader = cells.Length >= 2 && (cells[0].StartsWith("Item") || cells[0].StartsWith("Product") || Regex.IsMatch(cells[0], @"^INV-\d+")); if (isTableOrHeader) { Console.WriteLine($"Row: {string.Join("|", cells)}"); string csvRow = string.Join(",", cells).Trim(); csvBuilder.AppendLine(csvRow); } } // Save as CSV for Excel import File.WriteAllText("extracted_table.csv", csvBuilder.ToString()); Console.WriteLine("Table data exported to CSV"); using IronPdf; using System; using System.Text; using System.Text.RegularExpressions; var pdf = PdfDocument.FromFile("example.pdf"); string rawText = pdf.ExtractAllText(); // Split into lines for processing string[] lines = rawText.Split('\n'); var csvBuilder = new StringBuilder(); foreach (string line in lines) { if (string.IsNullOrWhiteSpace(line) || line.Contains("Page")) continue; string[] rawCells = Regex.Split(line.Trim(), @"\s+"); string[] cells; // If the line starts with "Product", combine first two tokens as product name if (rawCells[0].StartsWith("Product") && rawCells.Length >= 5) { cells = new string[rawCells.Length - 1]; cells[0] = rawCells[0] + " " + rawCells[1]; // Combine Product + letter Array.Copy(rawCells, 2, cells, 1, rawCells.Length - 2); } else { cells = rawCells; } // Keep header or table rows bool isTableOrHeader = cells.Length >= 2 && (cells[0].StartsWith("Item") || cells[0].StartsWith("Product") || Regex.IsMatch(cells[0], @"^INV-\d+")); if (isTableOrHeader) { Console.WriteLine($"Row: {string.Join("|", cells)}"); string csvRow = string.Join(",", cells).Trim(); csvBuilder.AppendLine(csvRow); } } // Save as CSV for Excel import File.WriteAllText("extracted_table.csv", csvBuilder.ToString()); Console.WriteLine("Table data exported to CSV"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel PDF中的表格通常只是被定位得像网格的文本。 此检查有助于确定一行是否属于表格行或标题。 通过过滤掉标题、页脚和无关文本,您可以从PDF中提取干净的表格数据,并且它将准备好用于CSV或Excel。 此工作流程适用于PDF表单、财务文件和报告。 之后您可以将 PDF 中的数据转换为 xlsx 文件,或者将它们合并到一个包含所有有用数据的 zip 文件中。 对于具有合并单元格的复杂表格,您可能需要根据列位置调整解析逻辑。 PDF 数据提取 .NET:完整开发者指南:图 5 - 提取的表格数据 从 PDF 文件中提取表单字段数据 IronPDF还允许表单字段数据提取和修改: using IronPdf; using System.Drawing; using System.Linq; var pdf = PdfDocument.FromFile("form_document.pdf"); // Extract form field data var form = pdf.Form; foreach (var field in form) // Removed '.Fields' as 'FormFieldCollection' is enumerable { Console.WriteLine($"{field.Name}: {field.Value}"); // Update form values if needed if (field.Name == "customer_name") { field.Value = "Updated Value"; } } // Save modified form pdf.SaveAs("updated_form.pdf"); using IronPdf; using System.Drawing; using System.Linq; var pdf = PdfDocument.FromFile("form_document.pdf"); // Extract form field data var form = pdf.Form; foreach (var field in form) // Removed '.Fields' as 'FormFieldCollection' is enumerable { Console.WriteLine($"{field.Name}: {field.Value}"); // Update form values if needed if (field.Name == "customer_name") { field.Value = "Updated Value"; } } // Save modified form pdf.SaveAs("updated_form.pdf"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 此代码片段从PDF中提取表单字段值,并允许您以编程方式更新它们。 这使得处理PDF表单和提取指定信息范围用于分析或生成报告变得容易。 这对于自动化工作流程如客户入职、调查处理或数据验证非常有用。 PDF 数据提取 .NET:完整开发者指南:图 6 - 提取的表单数据和更新后的表单 下一步 IronPDF使.NET中的PDF数据提取变得实用高效。 您可以从各种PDF文档中提取图像、文本、表格、表单字段,甚至是提取附件,包括通常需要额外OCR处理的扫描PDF。 无论您的目标是构建知识库、自动化报告工作流程,还是从财务PDF中提取数据,该库都为您提供了无需手动复制或易出错解析来完成任务的工具。 它简单、快速,并直接集成到Visual Studio项目中。 试试看,您可能会节省大量时间,避免处理PDF的常见麻烦。 准备在您的应用程序中实现PDF数据提取了吗? IronPDF听起来是适合您的.NET库吗? 立即开始免费试用,体验全部功能;或者了解我们的商业用途许可选项。 请访问我们的文档,获取全面的指南和 API 参考。 常见问题解答 从PDF文档中提取数据的主要挑战是什么? PDF 文档主要设计用于以特定布局显示内容,由于其侧重于外观而非数据可访问性,因此很难通过编程方式提取数据。 IronOCR 如何帮助 .NET 进行 PDF 数据提取? IronOCR 提供工具,利用光学字符识别 (OCR) 将文本图像转换为机器可读数据,从而从 PDF(包括扫描文档)中提取文本和数据。 IronOCR 可以处理扫描的 PDF 文档吗? 是的,IronOCR 能够利用先进的 OCR 技术处理扫描的 PDF 文件,识别并提取文档中图像的文本。 IronOCR 使用哪种编程语言进行 PDF 数据提取? IronOCR 专为与 C# 配合使用而设计,因此对于在 .NET 框架内工作的开发人员来说,它是从 PDF 中提取数据的绝佳选择。 是否有使用 IronOCR 进行 PDF 数据提取的代码示例? 是的,该指南包含完整的 C# 代码示例,演示如何使用 IronOCR 从 PDF 文件中有效地提取数据。 IronOCR 能否解析 PDF 文档中的表格? IronOCR 包含解析 PDF 文档中表格的功能,使开发人员能够高效地提取结构化数据。 IronOCR可以提取哪些类型的PDF内容? IronOCR 可以从 PDF 中提取各种类型的内容,包括文本、表格和扫描图像中的数据,使其成为一款用途广泛的数据提取工具。 Kannapat Udonpant 立即与工程团队聊天 软件工程师 在成为软件工程师之前,Kannapat 在日本北海道大学完成了环境资源博士学位。在攻读学位期间,Kannapat 还成为了车辆机器人实验室的成员,隶属于生物生产工程系。2022 年,他利用自己的 C# 技能加入 Iron Software 的工程团队,专注于 IronPDF。Kannapat 珍视他的工作,因为他可以直接从编写大多数 IronPDF 代码的开发者那里学习。除了同行学习外,Kannapat 还喜欢在 Iron Software 工作的社交方面。不撰写代码或文档时,Kannapat 通常可以在他的 PS5 上玩游戏或重温《最后生还者》。 相关文章 已发布十二月 18, 2025 C# 读取 PDF 表单字段:以编程方式提取表单数据 了解如何使用IronPDF在C#中读取PDF表单字段。从可填写PDF中提取文本、复选框、下拉列表等,提供简单的代码示例。 阅读更多 已发布十二月 18, 2025 C# 从 PDF 中提取图像:完整开发者指南 了解如何在C#中使用IronPDF强大的方法从PDF文档中提取图像。包含.NET开发人员的完整指南和代码示例。 阅读更多 已发布十二月 18, 2025 C# 将 PDF 转换为图像:完整开发者指南 了解如何在C#中使用IronPDF将PDF文档转换为图像。提供JPG、PNG和TIFF转换的逐步指南和代码示例。 阅读更多 C# 将 PDF 转换为图像:完整开发者指南计算机视觉 OCR 如何使用 Ir...
已发布十二月 18, 2025 C# 读取 PDF 表单字段:以编程方式提取表单数据 了解如何使用IronPDF在C#中读取PDF表单字段。从可填写PDF中提取文本、复选框、下拉列表等,提供简单的代码示例。 阅读更多