Kako izvaditi račune i strukturirane tablice

Kako izvaditi račune i strukturirane tablice

Izvlačenje linije predmeta i tablica iz računa je ključ za potpunu automatizaciju plaćene račune, revizije i analize troškova. Aspose.OCR Invoice to Text for .NET omogućuje vam da podijelite detaljne, višestruke, više kolona podatke – čak i iz skeniranih ili fotografiranih dokumenata.

Real-svjetski problem

Računovodstva sadrže tablice proizvoda/službi – ručno ih transcribiranje je vremensko i pogrešno.Puna automatizacija zahtijeva čvrstu ekstrakciju postavljenih detalja.

Pregled rješenja

Koristite OCR za prepoznavanje tabličnih područja, razdvajanje svakog redova i kolona i izvoz u strukturirane formate za ERP, BI ili daljnju analizu.

Preduzeća

  • Visual Studio 2019 ili kasnije
  • .NET 6.0 ili noviji (ili .Net Framework 4.6.2+)
  • Aspose.OCR za .NET od NuGet
  • Prikaz računa slike ili PDF-ove s linijskim predmetima/tablicama
PM> Install-Package Aspose.OCR

Korak po korak provedba

Korak 1: Pripremite sliku računa/PDF

string invoiceFile = "invoice_with_items.pdf";

Korak 2: Prepoznajte područje tablice / linije predmeta

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;

Korak 3: Razdvajanje prepoznatljivog teksta u stolne krugove/kolonice

  • Koristite regex ili prilagođenu logiku za razdvajanje elemenata u redovima/kolonima
// 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.
    }
}

Korak 4: Izvoz linije predmeta / tablice na CSV

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

Četvrti korak: potpuni primjer

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

Korištenje slučajeva i aplikacija

Analitička analiza i AP automatizacija

Ekstrakt se sastoji od troškova za izvješćivanje, predviđanje i odobrenje.

Revizija i reviziju računa

Revizija / odobrenje struje s izvoznim, strojno čitljivim detaljima.

ERP/financijska integracija

Izravno preuzimanje strukturiranih tablica podataka u financijsko ili ERP softver.

Zajednički izazovi i rješenja

Izazov 1: Različiti formati stolova

Rješenje: Tune regex i parsing logika za svakog dobavljača/templata.

Izazov 2: OCR prepoznavanje pogrešaka u stolpcima

Rješenje: Koristite slušalice, zatražite skeniranje visoke kvalitete ili zastavu za ručni pregled.

Izazov 3: Izgubljeni ili nestali stolpci

Rješenje: Normalizirajte, razdvojite ili brzo pregledajte u dvostrukim slučajevima.

Razmatranje učinkovitosti

  • Batch proces više računa u paralelnom obliku
  • Log/flag parsing pitanja za ljudski pregled

Najbolje prakse

  • Izgradnja regex knjižnice za poznate šablone
  • Pregled ispitnih izvora za tun parsing
  • Sigurna originalna/procesirana datoteka za reviziju
  • Aktualizirajte logiku ekstrakcije kao promjena dobavljača / predmeta

Napredni scenariji

Scenarij 1: Map Line predmeti na ERP/Database izravno

Koristite ORM ili API pozive za pritisak izvedenih podataka o tablici.

Scenarij 2: Preuzmite više stranica

Proširite logiku na parse preko PDF/image stranica prekida.

zaključak

Aspose.OCR Invoice to Text for .NET omogućuje ekstrakciju detaljnih elemenata i tablica linije računa – omogućavajući potpunu automatizaciju od skeniranja/fotografije do strukturiranih, aktivnih podataka.

Pogledajte strukturiraniji kod ekstrakcije u Aspose.OCR za .NET API reference .

 Hrvatski