如何通过Aspose.OCR自动从多页PDF中提取数据

如何通过Aspose.OCR自动从多页PDF中提取数据

来自扫描仪、档案或企业工作流的多页PDF经常包含大量无法搜索的文本和表格,手动提取是缓慢而不可扩展的。

现实世界问题

法律、财务和学术档案定期处理数页扫描的PDF,包含数百页。

解决方案概述

Aspose.OCR for .NET 可以从每个页面中进行包装和提取文本/表格,以多页的 PDF. 您可以指定页面的序列、出口格式以及与商业应用程序或数字档案自动集成。

原則

  • Visual Studio 2019 或以后
  • .NET 6.0 或更高版本(或 .Net Framework 4.6.2+)
  • Aspose.OCR 为 .NET 从 NuGet
  • 基本的C#编程技能
PM> Install-Package Aspose.OCR

步骤实施

步骤 1: 安装和设置 Aspose.OCR

using Aspose.OCR;

步骤2:添加多页 PDF 文件

OcrInput input = new OcrInput(InputType.PDF);
input.Add("archive.pdf"); // all pages
input.Add("report.pdf", 5, 10); // pages 5-14

步骤3:设置识别设置和页面排序

RecognitionSettings settings = new RecognitionSettings();
settings.Language = Language.English;
settings.DetectAreasMode = DetectAreasMode.AUTO;

步骤4:从每个页面提取文本和表格

AsposeOcr ocr = new AsposeOcr();
List<RecognitionResult> results = ocr.Recognize(input, settings);

步骤5:每个页面出口结果

int page = 1;
foreach (RecognitionResult result in results)
{
    result.Save($"output_page_{page}.txt", SaveFormat.Text);
    result.Save($"output_page_{page}.xlsx", SaveFormat.Xlsx);
    result.Save($"output_page_{page}.json", SaveFormat.Json);
    page++;
}

步骤6:处理错误和验证数据

try
{
    AsposeOcr ocr = new AsposeOcr();
    List<RecognitionResult> results = ocr.Recognize(input, settings);
}
catch (Exception ex)
{
    Console.WriteLine($"Error: {ex.Message}");
}

步骤7:为大文件和包工作优化

  • 按目录处理 PDF 文件夹
  • 使用选择性页面处理速度
  • 监控/CPU使用
foreach (string file in Directory.GetFiles("./pdfs", "*.pdf"))
{
    input.Add(file);
}

步骤8:完整的例子

using Aspose.OCR;
using System;
using System.Collections.Generic;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        try
        {
            OcrInput input = new OcrInput(InputType.PDF);
            input.Add("archive.pdf");
            input.Add("report.pdf", 5, 10);

            RecognitionSettings settings = new RecognitionSettings();
            settings.Language = Language.English;
            settings.DetectAreasMode = DetectAreasMode.AUTO;

            AsposeOcr ocr = new AsposeOcr();
            List<RecognitionResult> results = ocr.Recognize(input, settings);

            int page = 1;
            foreach (RecognitionResult result in results)
            {
                result.Save($"output_page_{page}.txt", SaveFormat.Text);
                result.Save($"output_page_{page}.xlsx", SaveFormat.Xlsx);
                result.Save($"output_page_{page}.json", SaveFormat.Json);
                page++;
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }
}

使用案例和应用程序

法律和遵守档案

提取合同、法院文件或政府记录的完整内容,以便搜索和遵守。

学术与研究档案

数字化和分割杂志、论文或数据表用于分析或电子学习。

财务和审计工作流

自动从大声明档案、报告和分布表中提取。

共同挑战与解决方案

挑战1:不一致的页面配置

** 解决方案:** 使用 AUTO 检测或按页面范围设置不同的模式。

挑战2:非常大的PDF

** 解決方案:** 處理集合;分割檔案,以改善記憶體性能。

挑战3:混合内容(文本、表、图像)

** 解决方案:** 验证和后进程输出; 调音检测模式。

绩效考虑

  • 大型PDF需要更多的内存/CPU
  • Batch 工作时间为最佳性能
  • 在融入前验证输出样本

最佳实践

  • 使用命名协议,以便轻松跟踪
  • 分配多页的PDF,如果文件非常大
  • 保证源和输出文件
  • 在关键工作流中验证和点检查结果

先进的场景

场景 1: 出口到可搜索的 PDF 页面

foreach (RecognitionResult result in results)
{
    result.Save($"output_page_{page}.pdf", SaveFormat.Pdf);
    page++;
}

场景2:与数据库或云集成

foreach (RecognitionResult result in results)
{
    string json = File.ReadAllText($"output_page_{page}.json");
    // Upload json or send to a cloud endpoint
}

结论

Aspose.OCR for .NET 可从多页 PDF 中强大、可扩展的文本提取和结构化数据 - 节省手动工作时间,提高工作流自动化。

查看更多 PDF 和包处理示例 ASPOSE.OCR 为 .NET API 参考 .

 中文