Hvordan utveksle faktura linje elementer og strukturerte tabeller

Hvordan utveksle faktura linje elementer og strukturerte tabeller

Utvinning av linje elementer og tabeller fra fakturaer er nøkkelen til full automatisering av kontoer betalt, revisjoner, og utgifter analytics. Aspose.OCR Invoice to Text for .NET gjør det mulig å parse detaljerte, multi-ro, flerkolonnata – selv fra skannede eller fotograferte dokumenter.

Real-verdens problem

Fakturene inneholder tabeller av produkter/tjenester – manuell oversettelse av disse er tidkrevende og feilfrie. full automatisering krever robust utvinning av elementerte detaljer.

Oversikt over løsning

Bruk OCR for å gjenkjenne tabellregioner, parse hver rad og kolonne, og eksportere til strukturerte formater for ERP, BI, eller videre analyse.

Prerequisites

  • Visual Studio 2019 eller senere
  • .NET 6.0 eller nyere (eller .Net Framework 4.6.2+)
  • Aspose.OCR for .NET fra NuGet
  • Eksempler på faktura bilder eller PDF-er med linje elementer/tabeller
PM> Install-Package Aspose.OCR

Step-by-step implementering

Steg 1: Forbereder faktura bilde/PDF

string invoiceFile = "invoice_with_items.pdf";

Steg 2: gjenkjenne tabell/linje elementregioner

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;

Trinn 3: Parse gjenkjent tekst i tabellruter/kolumner

  • Bruk regex eller tilpasset logikk for å splitte ut linje elementer av rad/kolonne delimitterer
// 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.
    }
}

Steg 4: Eksport linje elementer/tabell til CSV

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

Steg 5: Komplett eksempel

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

Bruker tilfeller og applikasjoner

Spend Analytics og AP Automation

Ekstrakt itemized utgifter for rapportering, forutsetning og godkjennelse.

Regnskapsrevisjon og revisjon

Streamline-audit/godkjenning med eksporterbare, maskinlesbare detaljer.

ERP/finansieringssystem integrasjon

Direkte last strukturerte tabelldata inn i finans- eller ERP-programvare.

Vanlige utfordringer og løsninger

Utfordring 1: Varierte tabellformat

Løsning: Tune regex og parsing logikk for hver leverandør/template.

Utfordring 2: OCR-oppdagelsesfeil i kolonner

Løsning: Bruk kolumn heuristikker, be om høyere kvalitet skanninger, eller flagg for manuell gjennomgang.

Utfordring 3: Tapte eller tapte kolonner

Løsning: Normalisere, splitt, eller omgående gjennomgang av ambisiøse tilfeller.

Performance vurderinger

  • Batch behandler flere fakturaer i parallell
  • Log/flagparsing problemer for menneskelig vurdering

Beste praksis

  • Bygg regex-biblioteket for kjente maler
  • Oversikt over prøver utganger til tune parsing
  • Sikker opprinnelige/prosesserte filer for revision
  • Oppdatering av ekstraksjonslogikk som leverandører/templer endrer seg

Avanserte scenarier

Scenario 1: Kartlinje elementer til ERP/Database direkte

Bruk ORM eller API-samtaler for å trykke ut ekstraherte tabelldata.

Scenario 2: Handle flere sider tabeller

Utvid logikk til parse gjennom PDF/bilde-siden brudd.

Conclusion

Aspose.OCR Invoice to Text for .NET gjør det mulig å trekke ut detaljerte faktura linje elementer og tabeller - slik at full automatisering fra skanning / bilde til strukturerte, håndterbare data.

Se mer strukturert ekstraksjonskode i Aspose.OCR for .NET API Referanse .

 Norsk