Hoe factuurlijn items en gestructureerde tabellen te extraheren
Het extraheren van lijn items en tabellen uit facturen is de sleutel voor de volledige automatisering van betaalbare accounts, audits en uitgevende analyses. Aspose.OCR Invoice to Text for .NET stelt u in staat om gedetailleerde, multi-row, multicolumn gegevens te parsen – zelfs van gescannuleerde of gefotografeerde documenten.
Real-wereld probleem
De facturen bevatten tabellen van producten/diensten – het handmatig transcrieren van deze is tijd- en fout-vrij. Volledige automatisering vereist een robuste extractie van geïdentificeerde details.
Overzicht oplossingen
Gebruik OCR om tabelregio’s te herkennen, elke rij en kolom te parsen en naar gestructureerde formaten te exporteren voor ERP, BI of verdere analyse.
Voorwaarden
- Visual Studio 2019 of later
- .NET 6.0 of hoger (of .Net Framework 4.6.2+)
- Aspose.OCR voor .NET van NuGet
- Voorbeeld factuurbeelden of PDF’s met lijn items/tables
PM> Install-Package Aspose.OCR
Stap voor stap implementatie
Stap 1: Bereid de factuur afbeelding/PDF
string invoiceFile = "invoice_with_items.pdf";
Stap 2: Herken tabel/lijn itemregio’s
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;
Stap 3: Verwijder geïdentificeerde tekst in tabellen/kolommen
- Gebruik regex of aangepaste logica om lijn items uit te splitsen door ronde/column delimiters
// 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.
}
}
Stap 4: Exportlijn items / tabel naar CSV
using (var writer = new StreamWriter("invoice_lineitems.csv"))
{
writer.WriteLine("SKU,Description,Qty,UnitPrice,Total");
// Loop and write line items parsed above
}
Stap 5: Complete voorbeeld
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));
}
}
}
Gebruik Cases en Applicaties
Gebruik Analytics en AP Automation
Extract itemized uitgaven voor rapportage, voorspelling en goedkeuring.
Factuurbeoordeling en evaluatie
Streamline audit / goedkeuring met exportable, machine-readable details.
Integratie van het ERP/financiële systeem
Direct laden gestructureerde tabelgegevens in financiële of ERP-software.
Gemeenschappelijke uitdagingen en oplossingen
Challenge 1: Variëteerde tabelformaten
Solutie: Tune regex en parsing logica voor elke leverancier/template.
Challenge 2: OCR-recognition fouten in kolommen
Oplossing: Gebruik kolomheuristiek, vraagt om hogere kwaliteit scans of vlag voor handmatige beoordeling.
Challenge 3: verloren of verdwenen kolommen
Solutie: Normaliseren, splitsen of snel beoordelen op ambiguïte gevallen.
Performance overwegingen
- Batch verwerkt meerdere facturen in parallel
- Log/vlagparsing problemen voor menselijke beoordeling
Beste praktijken
- Build regex bibliotheek voor bekende templates
- Review sample output naar tune parsing
- Veilige originele/verwerkte bestanden voor audit
- Update extractie logica als leveranciers / templates veranderen
Geavanceerde scenario’s
Scenario 1: Kaartlijn items naar ERP/database Direct
Gebruik ORM of API-oproepen om geïntroduceerde tabelgegevens te drukken.
Scenario 2: Handelen met meerdere tabellen
Uitbreid de logica naar parse over PDF/image pagina breuken.
Conclusie
Aspose.OCR Invoeren naar tekst voor .NET maakt het mogelijk om gedetailleerde factuurlijn items en tabellen te extraheren – waardoor volledige automatisering van scan/foto tot gestructureerde, handhaafbare gegevens mogelijk is.
Zie meer gestructureerde extractcode in de Aspose.OCR voor .NET API Referentie .