Hvordan til at udveksle faktura linje elementer og strukturerede tabeller
Udvinding af linje elementer og tabeller fra fakturaer er nøglen til fuld automatisering af betalbare konti, revisioner, og udgifter analyser. Aspose.OCR Invoice to Text for .NET giver dig mulighed for at parse detaljerede, multi-ro, flerkolonne data – endda fra scannede eller fotograferede dokumentation.
Det virkelige problem
Fakturerne indeholder tabeller af produkter/tjenester – manuel oversættelse af disse er tidskrævende og fejlfrit. fuld automatisering kræver robust udvinding af elementerede detaljer.
Oversigt over løsning
Brug OCR til at genkende tabelregioner, parse hver række og kolonne og eksportere til strukturerede formater for ERP, BI eller yderligere analyse.
Forudsætninger
- Visual Studio 2019 eller senere
- .NET 6.0 eller nyere (eller .Net Framework 4.6.2+)
- Aspose.OCR til .NET fra NuGet
- Eksempler på faktura billeder eller PDF’er med linje elementer/tabler
PM> Install-Package Aspose.OCR
Step-by-Step gennemførelse
Trin 1: Forbered billedbilledet/PDF
string invoiceFile = "invoice_with_items.pdf";
Trin 2: Anerkend bord/linje elementer regioner
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;
Trin 3: Parse anerkendt tekst i tabelruter/kolumner
- Brug regex eller skræddersyet logik til at splitte linje elementer af række/kolonne delimitter
// 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.
}
}
Trin 4: Eksport linje elementer/tabeller til CSV
using (var writer = new StreamWriter("invoice_lineitems.csv"))
{
writer.WriteLine("SKU,Description,Qty,UnitPrice,Total");
// Loop and write line items parsed above
}
Trin 5: Et fuldstændigt 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));
}
}
}
Brug af tilfælde og applikationer
Analyse og AP Automation
Ekstrakt itemiserede udgifter til rapportering, forudsigelse og godkendelse.
Revision og revision af fakturaer
Streamline-audit/godkendelse med eksporterbare, maskinlæsbare detaljer.
Integration af ERP/Finance System
Lad strukturerede tabeldata direkte ind i finansielle eller ERP-software.
Fælles udfordringer og løsninger
Udfordring 1: Varierede tabelformater
Løsning: Tune regex og parsing logik for hver leverandør/templat.
Udfordring 2: OCR-opdagelsesfejl i kolonner
Løsning: Brug kolonnehuristik, anmode om højeste kvalitetsscanning eller flag for manuel gennemgang.
Udfordring 3: Mergede eller savnede kolumner
**Løsning: ** Normalisere, splittet eller omgående gennemgang af ambiguøse tilfælde.
Performance overvejelser
- Batch behandler flere fakturaer parallelt
- Log/flag parsing spørgsmål til menneskelig anmeldelse
Bedste praksis
- Byg regex-biblioteket til kendte maler
- Anmeldelse af prøveudgang til tune parsing
- Sikker oprindelige/processerede filer til revision
- Opdatering af ekstraktionslogik som leverandører/templer ændres
Avancerede scenarier
Scenario 1: Map Line elementer til ERP/Database direkte
Brug ORM eller API-opkald til at trykke ekstraherede tabeldata.
Scenario 2: Handle flere sider tabeller
Udvid logik til parse over PDF/billede-siden brud.
Konklusion
Aspose.OCR Invoice to Text for .NET gør det muligt at udveksle detaljerede fakturaelementer og tabeller – hvilket giver fuld automatisering fra scan/foto til strukturerede, aktiverbare data.
Se mere struktureret ekstraktionskoder i Aspose.OCR til .NET API Reference .