چگونگی استخراج آیتم های خط فاکتور و جدول های ساختاری

چگونگی استخراج آیتم های خط فاکتور و جدول های ساختاری

استخراج آیتم های خطی و جدول از صورتحساب ها کلید اتوماسیون کامل حساب های پرداخت، حسابرسی و هزینه های تجزیه و تحلیل است. 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 مرجع .

 فارسی