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 .