如何通过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 参考 .