چگونگی استخراج آیتم های خط فاکتور و جدول های ساختاری
استخراج آیتم های خطی و جدول از صورتحساب ها کلید اتوماسیون کامل حساب های پرداخت، حسابرسی و هزینه های تجزیه و تحلیل است. ASPOSE.OCR فاکتور به متن برای .NET به شما اجازه می دهد تا جزئیات، چند ستون، بسیاری از ستون داده ها – حتی از اسناد اسکن شده و یا عکس گرفته شده.
مشکل دنیای واقعی
فاکتورها حاوی جدول هایی از محصولات/خدمات هستند – ترجمه دستی آنها زمان و خطا است. اتوماسیون کامل نیاز به استخراج قوی از جزئیات مشخص شده دارد.
بررسی راه حل
از OCR برای شناسایی مناطق جدول، پارس هر ردیف و ستون و صادرات به فرمت های ساختاری برای ERP، BI، و یا تجزیه و تحلیل بیشتر استفاده کنید.
پیش شرط
- Visual Studio 2019 یا بالاتر
- .NET 6.0 یا بالاتر (یا .Net Framework 4.6.2+)
- Aspose.OCR برای .NET از NuGet
- نمونه عکس های صورتحساب یا PDF ها با خطوط / جدول
PM> Install-Package Aspose.OCR
پیاده سازی گام به گام
مرحله اول: آماده سازی تصویر فاکتور / PDF
string invoiceFile = "invoice_with_items.pdf";
مرحله دوم: شناسایی مناطق جدول و خط
using Aspose.OCR;
InvoiceRecognitionSettings settings = new InvoiceRecognitionSettings();
settings.Language = Language.English;
AsposeOcr ocr = new AsposeOcr();
OcrInput input = new OcrInput(InputType.PDF);
input.Add(invoiceFile);
List<RecognitionResult> results = ocr.RecognizeInvoice(input, settings);
string fullText = results[0].RecognitionText;
مرحله 3: پارس متن شناسایی شده به ستون ها / ستون های میز
- استفاده از Regex یا منطق سفارشی برای جدا کردن آیتم های خط با ردیف ها / ستون ها
// Example: Split into lines, then columns (simplified)
string[] lines = fullText.Split(new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
foreach (var line in lines)
{
if (Regex.IsMatch(line, @"\d+\s+[A-Za-z].*\s+\d+[.,]\d{2}")) // crude line item match
{
string[] columns = line.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
// Map columns: SKU, description, qty, price, total, etc.
}
}
مرحله 4: صادرات خط آیتم ها / جدول به CSV
using (var writer = new StreamWriter("invoice_lineitems.csv"))
{
writer.WriteLine("SKU,Description,Qty,UnitPrice,Total");
// Loop and write line items parsed above
}
مرحله پنجم: نمونه کامل
using Aspose.OCR;
using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
string invoiceFile = "invoice_with_items.pdf";
InvoiceRecognitionSettings settings = new InvoiceRecognitionSettings();
settings.Language = Language.English;
AsposeOcr ocr = new AsposeOcr();
OcrInput input = new OcrInput(InputType.PDF);
input.Add(invoiceFile);
List<RecognitionResult> results = ocr.RecognizeInvoice(input, settings);
string fullText = results[0].RecognitionText;
var lineItems = new List<string[]>();
string[] lines = fullText.Split(new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
foreach (var line in lines)
{
if (Regex.IsMatch(line, @"\d+\s+[A-Za-z].*\s+\d+[.,]\d{2}"))
lineItems.Add(line.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries));
}
using (var writer = new StreamWriter("invoice_lineitems.csv"))
{
writer.WriteLine("SKU,Description,Qty,UnitPrice,Total");
foreach (var item in lineItems)
writer.WriteLine(string.Join(",", item));
}
}
}
استفاده از موارد و برنامه ها
هزینه تجزیه و تحلیل و اتوماسیون AP
استخراج هزینه های مورد نظر برای گزارش، پیش بینی و تصویب.
حسابرسی و بازنگری
بررسی / تایید جریان با جزئیات قابل صادرات و قابل خواندن ماشین.
ERP / سیستم های مالی
به طور مستقیم داده های جدول ساختار یافته را به نرم افزار مالی یا ERP بارگذاری کنید.
چالش ها و راه حل های مشترک
چالش 1: فرمت های مختلف میز
** راه حل:** برای هر تامین کننده / نمونه، منطق رگکس و پارسینگ را تایپ کنید.
چالش ۲: اشتباهات تشخیص OCR در ستون ها
** راه حل:** استفاده از هیورستیک ستون، درخواست اسکن با کیفیت بالا، و یا پرچم برای بازنگری دستی.
چالش سوم: ستون های گمشده یا گم شده
**پاسخ: **تعادل، تقسیم و یا بررسی فوری در مورد موارد دوگانه.
بررسی عملکرد
- بوتش چندین صورتحساب را به صورت موازی پردازش می کند
- برچسب ها/مشکلات پرچم برای بررسی انسان
بهترین شیوهها
- ساخت کتابخانه Regex برای قالب های شناخته شده
- بررسی خروجی نمونه برای پارسینگ تن
- امنیت فایل های اصلی / پردازش شده برای حسابرسی
- به روز رسانی منطق استخراج به عنوان تامین کنندگان / قالب تغییر
سناریوهای پیشرفته
سناریو 1: نقشه خط آیتم به ERP / پایگاه داده به طور مستقیم
از تماس های ORM یا API برای فشار دادن داده های جدول استخراج شده استفاده کنید.
فصل دوم: کار با جدول های چند صفحه ای
منطق را گسترش دهید تا از طریق شکاف های صفحه PDF/image عبور کنید.
نتیجه گیری
Aspose.OCR Invoice to Text for .NET امکان استخراج جزئیات و جدول های خط فاکتور را فراهم می کند – امکان اتوماسیون کامل از اسکن / عکس به داده های ساختار یافته و قابل اجرا.
دیدن کد استخراج ساختار یافته تر در Aspose.OCR برای .NET API مرجع .