Hur man extraherar faktura linje objekt och strukturerade tabeller

Hur man extraherar faktura linje objekt och strukturerade tabeller

Att extrahera linjeobjekt och tabeller från fakturor är nyckeln till fullständig automatisering av betalda konton, revisioner och utgiftsanalyser. Aspose.OCR Invoice to Text for .NET gör det möjligt för dig att parsa detaljerade, multi-ro, flerkolumnen data – även från skannade eller fotograferade dokument.

Realvärldsproblem

Fakturor innehåller tabeller av produkter/tjänster – manuellt översättningen av dessa är tidskrävande och felfritt. Full automatisering kräver robust utvinning av objektiserade detaljer.

Översikt över lösningen

Använd OCR för att känna igen tabellregioner, parsa varje rad och kolumn och exportera till strukturerade format för ERP, BI eller ytterligare analys.

förutsättningar

  • Visual Studio 2019 eller senare
  • .NET 6.0 eller senare (eller .Net Framework 4.6.2+)
  • Aspose.OCR för .NET från NuGet
  • Exempel faktura bilder eller PDF-filer med linje objekt/tabeller
PM> Install-Package Aspose.OCR

Steg för steg genomförande

Steg 1: Förbereda faktura bild/PDF

string invoiceFile = "invoice_with_items.pdf";

Steg 2: Identifiera tabell/linjeelementregioner

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;

Steg 3: Parsa identifierad text i tabellrutor/kolumner

  • Använd regex eller anpassad logik för att dela ut linjeobjekt med rad/kolumndelimeter
// 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: Exportera linje objekt/tabell till 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: Ett fullständigt exempel

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

Använd fall och applikationer

Spend Analytics och AP Automation

Extrakt objektiserade utgifter för rapportering, prognoser och godkännande.

Faktureringskontroll och granskning

Streamline-audit/godkännande med exporterbara, maskinläsbara detaljer.

Integration av ERP/Finanssystem

Direkt ladda strukturerade tabelldata i finansiell eller ERP-programvara.

Gemensamma utmaningar och lösningar

Utmaning 1: Varierade tabellformat

Lösning: Tune regex och parsing logik för varje leverantör/templat.

Utmaning 2: OCR-fel i kolumnerna

Lösning: Använd kolumnen heuristik, begära högkvalitativa skanningar eller flagga för manuell granskning.

Utmaning 3: Försvunna eller saknade kolumner

Lösning: Normalisera, split, eller omedelbar granskning på tvivelaktiga fall.

Prestanda överväganden

  • Batch behandlar flera fakturor parallellt
  • Log/flagg parsing problem för mänsklig recension

Bästa praxis

  • Bygg regexbibliotek för kända mallar
  • Översikt prover utgångar för tune parsing
  • Säker original/bearbetade filer för revision
  • Uppdatera extraction logic som leverantörer/templates förändras

Avancerade scenarier

Scenario 1: Map Line Items to ERP/Database Direkt

Använd ORM eller API-samtal för att trycka ut extraherade tabelldata.

Scenario 2: Handla flersidiga tabeller

Utöka logiken till parse över PDF/bilden sida bråk.

slutsatser

Aspose.OCR Invoice to Text for .NET gör det möjligt att extrahera detaljerade fakturor och tabeller – vilket möjliggör fullständig automatisering från scan/foto till strukturerade, aktiverbara data.

Se mer strukturerad extraktionskod i Aspose.OCR för .NET API Referens .

 Svenska