Wie man Rechnungslinie Elemente und strukturierte Tabellen extrahiert
Die Ausnahme von Linienobjekten und Tabellen aus Rechnungen ist der Schlüssel zur vollständigen Automatisierung von bezahlbaren Konten, Audits und Ausgaben-Analysen. Aspose.OCR Invoice to Text for .NET ermöglicht es Ihnen, detaillierte, multi-row, Multi-Column-Daten – auch aus scannen oder fotografierten Dokumente.
Real-Weltproblem
Die Rechnungen enthalten Tabellen von Produkten/Diensten – manuell übersetzen ist zeitlich und fehlerfreundlich.Full-Automation erfordert eine robuste Erhebung der getätigten Details.
Überblick der Lösung
Verwenden Sie OCR, um Tabellregionen zu erkennen, die einzelnen Zeilen und Spalten zu vergleichen und zu strukturierten Formaten für ERP, BI oder weitere Analysen zu exportieren.
Voraussetzung
- Visual Studio 2019 oder später
- .NET 6.0 oder höher (oder .Net Framework 4.6.2+)
- Aspose.OCR für .NET von NuGet
- Beispiele Rechnungsbilder oder PDFs mit Zeilen/Tabellen
PM> Install-Package Aspose.OCR
Schritt für Schritt Implementierung
Schritt 1: Bereiten Sie ein Rechnungsbild/PDF vor
string invoiceFile = "invoice_with_items.pdf";
Schritt 2: Erkennen Sie Tisch/Linie-Elemente Regionen
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;
Schritt 3: Spalten Sie den anerkannten Text in Tischröhren/Kolonnen
- Verwenden Sie Regex oder angepasstes Logik, um die Zeilen durch Renn/Kolumn-Delimitatoren zu teilen
// 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.
}
}
Schritt 4: Export Line Elemente/Tabelle in CSV
using (var writer = new StreamWriter("invoice_lineitems.csv"))
{
writer.WriteLine("SKU,Description,Qty,UnitPrice,Total");
// Loop and write line items parsed above
}
Schritt 5: Vollständiges Beispiel
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));
}
}
}
Verwendung von Fällen und Anwendungen
Ausgaben Analytics und AP Automation
Extrakt getätigte Ausgaben für Berichterstattung, Vorhersage und Genehmigung.
Rechnungsprüfung und Prüfung
Streamline-Audit / Genehmigung mit exportierbaren, maschinell lesbaren Details.
ERP/Finanzsystem Integration
Direkt herunterladen strukturierte Tabelldaten in Finanz- oder ERP-Software.
Gemeinsame Herausforderungen und Lösungen
Herausforderung 1: Variierte Tischformate
Lösung: Tune Regex und Parsing-Logik für jeden Anbieter/Template.
Herausforderung 2: OCR-Erkenntnisfehler in Kolumnen
Lösung: Verwenden Sie Spalteheuristik, fordern Sie qualitativ hochwertige Scannen oder Flaggen für manuelle Überprüfung.
Herausforderung 3: Verlorene oder verschwundene Spalten
**Lösung: ** Normalisieren, teilen oder schnell überprüfen Sie zweifelhafte Fälle.
Performance Beachtung
- Batch verarbeitet mehrere Rechnungen parallel
- Log/Flag Parsing-Probleme für menschliche Bewertung
Beste Praktiken
- Bauen Sie eine Regex-Bibliothek für bekannte Templates
- Prüfung der Probe-Ausgaben für Tune Parsing
- Sichere ursprüngliche/verarbeitete Dateien für die Prüfung
- Aktualisieren Sie die Extraktionslogik als Lieferanten/Templates ändern
Fortgeschrittene Szenarien
Scenario 1: Map Line Elemente auf ERP/Database Direct
Verwenden Sie ORM oder API-Anrufe, um extrahierte Tabelldaten zu drücken.
Szenario 2: Handeln Sie mit Multi-Page-Tabellen
Erweitern Sie die Logik bis zu Parse über PDF/Image-Seitenbrechen.
Schlussfolgerungen
Aspose.OCR Invoice to Text for .NET ermöglicht es, detaillierte Rechnungslinie-Elemente und Tabellen zu extrahieren – die vollständige Automatisierung von Scan/Photo bis zu strukturierten, handhabbaren Daten erlaubt.
Sehen Sie mehr strukturierte Extraktionscode in der Aspose.OCR für .NET API Referenz .