Jak extrahovat položky faktury a strukturované tabulky

Jak extrahovat položky faktury a strukturované tabulky

Odstraňování položek a tabulek z faktur je klíčem k plné automatizaci platných účtů, auditů a výdajových analýz. Aspose.OCR Invoice to Text for .NET vám umožní sdílet podrobné, multi-row, multicolumn data – dokonce i z skenovaných nebo fotografovaných dokumentů.

Reálný světový problém

Faktury obsahují tabulky produktů/služeb – manuální přepisování je časově náročné a bezchybné. plná automatizace vyžaduje robustní extrahování položených detailů.

Řešení přehled

Použijte OCR k rozpoznání tabulkových oblastí, rozdělte každý řádek a sloupec a exportujte do strukturovaných formátů pro ERP, BI nebo další analýzu.

Předpoklady

  • Visual Studio 2019 nebo novější
  • .NET 6.0 nebo novější (nebo .Net Framework 4.6.2+)
  • Aspose.OCR pro .NET z NuGet
  • Příklad fakturačních obrázků nebo PDF s čárovými položkami / tabulkami
PM> Install-Package Aspose.OCR

krok za krokem implementace

Krok 1: Připravte fakturační obrázek/PDF

string invoiceFile = "invoice_with_items.pdf";

Krok 2: Rozpoznání tabulkových/lineových položek

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: Rozdělte rozpoznaný text do stolních řádků/kolumn

  • Použijte regex nebo přizpůsobenou logiku, abyste rozdělili položky řádku po sloupcích/kolumnách
// 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: Export Line Items/Table 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í pří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žití případů a aplikací

Analýza výdajů a automatizace AP

Extrakt položené výdaje na hlášení, předpověď a schválení.

Účetní audit a přezkum

Streamline audit / schválení s exportovatelnými, strojově čitelnými detaily.

Integrace ERP/finančního systému

Přímé stahování strukturovaných tabulkových údajů do finančního nebo ERP softwaru.

Společné výzvy a řešení

Výzva 1: Rozmanité formáty tabulky

Rozhodnutí: Tune regex a parsing logiku pro každého dodavatele/templátu.

Výzva 2: Chyby v rozpoznávání OCR ve sloupcích

Rozhodnutí: Použijte sloupkovou heuristiku, požádejte o vyšší kvalitu skenování nebo vlajku pro manuální přezkum.

Výzva 3: Ztracené nebo chybějící sloupy

**Rozhodnutí: ** Normalizujte, rozdělujte nebo okamžitě přezkoumáváte nejasné případy.

Úvahy o výkonu

  • Batch zpracovává více faktur v paralelní
  • Log/flag parsing problémy pro lidské hodnocení

Nejlepší postupy

  • Vytvořte knihovnu Regex pro známé šablony
  • Recenze vzorkové výstupy pro tun parsing
  • Bezpečné originální / zpracované soubory pro audit
  • Aktualizace logiky extrakce při změně dodavatelů / šablon

Pokročilé scénáře

Scénář 1: Mapové linie položek na ERP / databázi přímo

Použijte ORM nebo API hovory pro stisknutí extrahovaných tabulkových údajů.

Scénář 2: Sledujte multi-stránkové tabulky

Rozšířte logiku a přejděte přes rozdíly na stránce PDF/image.

závěr

Aspose.OCR Invoice to Text for .NET umožňuje extrahovat podrobné položky a tabulky v řádku faktury – umožňující plnou automatizaci od skenování/fotografie až po strukturované, funkční údaje.

Podívejte se na strukturovanější extrakční kód v Aspose.OCR pro .NET API Reference .

 Čeština