如何自动发票数据提取和验证
如何自动发票数据提取和验证
在规模上自动发票数据提取有助于金融团队减少手动努力,加速可支付的账户,并尽量减少错误。
现实世界问题
数百或数千个账单的手动数据输入是缓慢的,昂贵的和错误的。
解决方案概述
包装处理账单文件夹,提取和验证结构化数据(如总,供应商,日期)和出口结果的ERP进口或审查 - 所有与高准确性。
原則
- Visual Studio 2019 或以后
- .NET 6.0 或更高版本(或 .Net Framework 4.6.2+)
- Aspose.OCR 为 .NET 从 NuGet
- 扫描或拍摄的发票图像文件夹(JPG、PNG、PDF)
PM> Install-Package Aspose.OCR
步骤实施
步骤1:准备一组账单
string[] invoiceFiles = Directory.GetFiles("./invoices", "*.pdf"); // or *.jpg, *.png
步骤2:设置发票识别和验证
using Aspose.OCR;
List<string> errors = new List<string>();
InvoiceRecognitionSettings settings = new InvoiceRecognitionSettings();
settings.Language = Language.English;
AsposeOcr ocr = new AsposeOcr();
步骤3:处理每个发票、提取和验证
using (var writer = new StreamWriter("invoice_results.csv"))
{
writer.WriteLine("File,Vendor,Date,Total,Status,Error");
foreach (var file in invoiceFiles)
{
try
{
OcrInput input = new OcrInput(InputType.SingleImage);
input.Add(file);
var results = ocr.RecognizeInvoice(input, settings);
var text = results[0].RecognitionText;
// Example: Extract fields with regex or parsing
string vendor = ExtractField(text, "Vendor:");
string date = ExtractField(text, "Date:");
string total = ExtractField(text, "Total:");
bool valid = ValidateInvoiceData(vendor, date, total);
writer.WriteLine($"{file},{vendor},{date},{total},{(valid ? "Valid" : "Invalid")},");
}
catch (Exception ex)
{
writer.WriteLine($"{file},,,,Error,{ex.Message}");
}
}
}
// Helper methods to extract and validate fields (simplified)
string ExtractField(string text, string fieldName)
{
// Implement regex or logic to extract field from text
return ""; // Example stub
}
bool ValidateInvoiceData(string vendor, string date, string total)
{
// Implement checks for expected formats, totals, required fields
return !string.IsNullOrEmpty(vendor) && !string.IsNullOrEmpty(date) && !string.IsNullOrEmpty(total);
}
步骤4:出口/集成结果
- 使用 CSV 进行审查、进口到 ERP/会计或进一步自动化
使用案例和应用程序
会计可支付自动化
处理和验证大量的供应商账单,以便及时支付。
ERP / 金融融资
将验证的发票数据输入到ERP或会计系统,以便简化运营。
审计与遵守
保持每个处理的发票包的详细记录和错误报告。
共同挑战与解决方案
挑战1:多种发票格式
** 解决方案:** Tune regex, field extraction, and OCR settings per supplier/template。
挑战2:扫描或图像中的错误
** 解决方案:** 使用预处理过滤器,要求更好的质量,旗帜进行审查。
挑战3:失去或不完整的领域
** 解决方案:** 确认和报告人体审查的失踪/残疾字段。
绩效考虑
- 巴奇工作可以运行几个小时 - 时间表离职
- 监测错误率,手动审查不良结果
最佳实践
- 测试包工作在一个小样本首先
- 定期审查和调节提取/验证逻辑
- 记录所有错误和成功
- 存储对审计的输入和输出数据
先进的场景
场景1:平行包装处理
使用 Parallel.ForEach 或 async 任务为非常大的发票集。
场景2:自动通知错误
发送电子邮件/警告,如果验证故障或错误出现。
结论
ASPOSE.OCR Invoice to Text for .NET 非常适合集合发票自动化,有助于金融团队规模、验证和准确整合账单数据。
寻找更先进的集成和分配提示在 ASPOSE.OCR 为 .NET API 参考 .