Wie man Rechnungslinie Elemente und strukturierte Tabellen extrahiert

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 .

 Deutsch