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 .