如何在 .NET 中自动从 PDF 中提取大规模表格数据

如何在 .NET 中自动从 PDF 中提取大规模表格数据

从一个PDF中提取数据是简单的,但如果你需要出口成千上万的表格填写的PDF进行分析、遵守或操作吗? Aspose.PDF.FormExporter Plugin 允许 .NET 开发人员和分析师自动大规模提交表单,将数据导出到 CSV 或 Excel 下流使用。

為什麼自動輸出 PDF 表格?

  • ** 节省无数小时:** 手动数据重新输入是错误的,缓慢的。
  • ** 可实时分析:** 即时集成客户、人力资源或金融数据。
  • ** 功率工作流:** 在 Excel 中与 BI 工具、报告或进一步处理集成。

Batch Input Setup: 为高容量提取做好准备

  • ** 直接输入:** 将所有 PDF 表格放在一个单一文件夹中(例如, /Forms/Input/).
  • ** 输出文件:** 决定目的地文件 - 通常 .csv.xlsx (Excel )
  • Plugin Initialization: 设置 FormExporter 以及行行操作的选项。
using Aspose.Pdf.Plugins;
using System.IO;

// Folder containing input PDF forms
dir string inputDir = @"C:\Forms\Input";
string[] pdfFiles = Directory.GetFiles(inputDir, "*.pdf");

// Output file path (CSV)
string outputCsv = @"C:\Forms\exported-data.csv";

// Create the exporter plugin and options
var exporter = new FormExporter();
var exportOptions = new FormExporterValuesToCsvOptions();
exportOptions.AddOutput(new FileDataSource(outputCsv)); 

Export Loop:从每个PDF中提取数据

处理每个 PDF 并将字段值集成到 CSV(或 Excel):

foreach (var file in pdfFiles)
{
    exportOptions.AddInput(new FileDataSource(file));
}

// Batch export all at once
dynamic resultContainer = exporter.Process(exportOptions);
Console.WriteLine($"Exported data from {pdfFiles.Length} PDFs to {outputCsv}");

提示: 出口的 CSV 将包含每个 PDF 的一个行,每个表格字段的列。

错误处理与自动化技巧

  • 错误的字段: 如果 PDF 具有不一致的表格、审查和预验证结构。
  • ** 破坏文件:** 添加例外处理到登录并错过无法阅读的 PDF。
  • 性能: 对于成千上万的PDF文件,将工作分成组件(例如,每次100个),然后将CSV合并起来。
  • 文件名称: 登录 PDF 文件名的每个出口行可追踪。

先进的场景

  • ** 出口到 Excel:** 使用 FormExporterValuesToExcelOptions.xlsx 出口。
  • 从多个文件夹的过程: 重复扫描子,并将结果结合起来。
  • ** 将数据与其他来源相结合:** 出口后,将 CSV 数据连接到 SQL 或分析管道。

使用案例和最佳实践

  • 数据分析: 用于调查、登机或反馈表格的自动提取。
  • ** 操作:** 集体出口发票、人力资源表格或遵守报告。
  • 档案: 输出存储数据格式,然后将 PDF 编辑/优化为 优化者 .

FAQ

**Q:我可以从扫描的PDF中提取表格数据吗?**答:仅支持具有互动(AcroForm/XFA)字段的PDF。 对于扫描图像,首先运行 OCR 然后使用文本提取插件。

问:如何有效处理数百个或数千个文件?答:将文件集成组,如果可能的话使用平行处理,并始终记录未出口的文件的错误。

 中文