Ako extrahovať fakturačné línie položky a štruktúrované tabuľky

Ako extrahovať fakturačné línie položky a štruktúrované tabuľky

Odstránenie riadkových položiek a tabuliek z faktúr je kľúčom k plnej automatizácii platených účtov, audícií a analýz výdavkov. Aspose.OCR Invoice to Text for .NET vám umožní rozdeliť podrobné, viacvrstvové, viaceré stĺpce – dokonca aj z skenovaných alebo fotografovaných dokumentov.

Reálny svetový problém

Faktúry obsahujú tabuľky produktov/služieb – manuálne ich prepisovanie je časovo náročné a bezchybné.

Prehľad riešenia

Použite OCR na rozpoznanie tabuľkových regiónov, rozdeliť každý riadok a stĺpec a exportovať do štruktúrovaných formátov pre ERP, BI alebo ďalšie analýzy.

Predpoklady

  • Visual Studio 2019 alebo neskôr
  • .NET 6.0 alebo novší (alebo .Net Framework 4.6.2+)
  • Aspose.OCR pre .NET od NuGet
  • Vzorové fakturačné obrázky alebo PDF s riadkovými položkami / tabuľkami
PM> Install-Package Aspose.OCR

krok za krokom implementácia

Krok 1: Pripravte fakturačný obrázok/PDF

string invoiceFile = "invoice_with_items.pdf";

Krok 2: Rozpoznávanie tabuľkových/line položiek regiónov

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;

Krok 3: Rozdeľte rozpoznaný text do tabuľkových riadkov/kolónov

  • Použite regex alebo prispôsobenú logiku na rozdelenie položiek podľa riadkov / stĺpcov
// 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.
    }
}

Krok 4: Vývoz línie položky / tabuľky do CSV

using (var writer = new StreamWriter("invoice_lineitems.csv"))
{
    writer.WriteLine("SKU,Description,Qty,UnitPrice,Total");
    // Loop and write line items parsed above
}

Krok 5: Kompletný príklad

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));
        }
    }
}

Použitie prípadov a aplikácií

Analýza a AP automatizácia

Extrakt objektizované výdavky na hlásenie, predpovede a schvaľovanie.

Audit a revízia faktúr

Streamline audit / schvaľovanie s exportovateľnými, strojovo čitateľnými detailmi.

Integrovanie ERP/finančného systému

Bezprostredne nahrať štruktúrované tabuľkové údaje do finančného alebo ERP softvéru.

Spoločné výzvy a riešenia

Výzva 1: Rozmanité formáty tabuľky

Riešenie: Tune regex a parsing logika pre každého dodávateľa/templátu.

Výzva 2: Chyby pri rozpoznávaní OCR v stĺpcoch

Riešenie: Použite stĺpcovú heuristiku, požiadajte o vyššiu kvalitu skenovania alebo vlajku pre manuálne preskúmanie.

Výzva 3: Mŕtve alebo stratené stĺpce

**Riešenie: ** Normalizovať, rozdeliť, alebo okamžite preskúmať na nejednoznačné prípady.

Preskúmanie výkonnosti

  • Batch spracúva viaceré faktúry v paralelnej
  • Log/flag parsing problémy pre ľudskú recenziu

Najlepšie postupy

  • Vytvorte regex knižnicu pre známe šablóny
  • Preskúmať vzorky výstupov na tune parsing
  • Bezpečné originálne / spracované súbory pre audit
  • Aktualizácia logiky extrakcie ako sa menia dodávatelia / šablóny

Pokročilé scenáre

Scenár 1: Mapové línie položiek na ERP/Database priamo

Použite ORM alebo API hovory tlačiť extrahované tabuľkové údaje.

Scenár 2: Spracovať viacstránkové tabuľky

Rozšíriť logiku na parse cez prerušenia PDF / obrázok stránky.

Záver

Aspose.OCR Invoice to Text for .NET umožňuje extrahovať podrobné položky a tabuľky v línii faktúry – čo umožňuje plnú automatizáciu od skenovania/fotografie až po štruktúrované, funkčné údaje.

Pozri viac štruktúrovaný extrakčný kód v Aspose.OCR pre .NET API referencie .

 Slovenčina