Πώς να εξαγάγετε στοιχεία γραμμής τιμολόγησης και δομημένους πίνακες

Πώς να εξαγάγετε στοιχεία γραμμής τιμολόγησης και δομημένους πίνακες

Η εξαγωγή στοιχείων γραμμής και τραπεζογραμματίων από τις τιμολογίες είναι το κλειδί για την πλήρη αυτοματοποίηση των λογαριασμών πληρωμών, των ελέγχων και των αναλυτικών δαπανών. Aspose.OCR Φορά σε κείμενο για .NET σας επιτρέπει να διαχωρίσετε λεπτομερείς, πολλαπλές, πολυστήμια δεδομένα - ακόμη και από σάρωση ή φωτογραφικά έγγραφα.

Το πρόβλημα του πραγματικού κόσμου

Οι τιμολογίες περιέχουν πίνακες προϊόντων / υπηρεσιών - η χειροκίνητη μεταγραφή αυτών είναι χρονοβόρα και ελαττωματική.

Συνοπτική λύση

Χρησιμοποιήστε το OCR για να αναγνωρίσετε τις περιοχές του πίνακα, να διαιρέσετε κάθε γραμμή και στήλη και να εξάγετε σε δομημένες μορφές για ERP, BI ή περαιτέρω ανάλυση.

Προϋποθέσεις

  • Visual Studio 2019 ή αργότερα
  • .NET 6.0 ή μεταγενέστερος (ή .Net Framework 4.6.2+)
  • Aspose.OCR για .NET από το NuGet
  • Δοκιμάστε εικόνες τιμολόγησης ή PDF με στοιχεία γραμμής / πίνακες
PM> Install-Package Aspose.OCR

Βήμα προς βήμα εφαρμογή

Βήμα 1: Προετοιμάστε Φορολογική εικόνα/PDF

string invoiceFile = "invoice_with_items.pdf";

Βήμα 2: Αναγνωρίστε τις περιοχές του πίνακα / γραμμής στοιχείων

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;

Βήμα 3: Διαχωρίστε το αναγνωρισμένο κείμενο σε γραμμές πίνακα / στήλες

  • Χρησιμοποιήστε regex ή προσαρμοσμένη λογική για να χωρίσετε τα αντικείμενα γραμμής με ορίζοντες σειράς / στήλης
// 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.
    }
}

Βήμα 4: Εξαγωγή στοιχείων γραμμής / πίνακα σε CSV

using (var writer = new StreamWriter("invoice_lineitems.csv"))
{
    writer.WriteLine("SKU,Description,Qty,UnitPrice,Total");
    // Loop and write line items parsed above
}

Βήμα 5: Συμπληρωματικό παράδειγμα

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));
        }
    }
}

Χρήση περιπτώσεων και εφαρμογών

Χρησιμοποιήστε Analytics και AP Automation

Εκχύλισμα στοιχειωμένες δαπάνες για την αναφορά, την πρόβλεψη και την έγκριση.

Φορολογικός έλεγχος και αναθεώρηση

Αξιολόγηση / έγκριση γραμμής ροής με εξαγωγικές, μηχανογραφικές λεπτομέρειες.

Ενεργοποίηση του ERP/Financial System

Κατεβάστε απευθείας τα δομημένα δεδομένα του πίνακα σε χρηματοοικονομικό ή λογισμικό ERP.

Κοινές προκλήσεις και λύσεις

Δοκιμή 1: Διαφορετικές μορφές τραπεζιού

Διάλυση: Δοκιμάστε τη λογική του regex και του parsing για κάθε προμηθευτή / πρότυπο.

Πρόκληση 2: Λάθη αναγνώρισης OCR στις στήλες

Λύση: Χρησιμοποιήστε την ερυθρότητα στήλης, ζητήστε υψηλότερη ποιότητα σάρωσης ή σημαία για χειροκίνητη αναθεώρηση.

Προκλήσεις 3: Χαμένες ή χαμένες στήλες

Λύση: Κανονικοποίηση, διαίρεση ή άμεση αναθεώρηση σε αμφιλεγόμενες περιπτώσεις.

Αξιολόγηση των επιδόσεων

  • Συγκεντρώστε την επεξεργασία πολλαπλών τιμολογίων παράλληλα
  • Λογαριασμός/παραγωγή προβλημάτων για ανθρώπινη αναθεώρηση

שיטות עבודה מומלצות

  • Κατασκευή βιβλιοθήκης Regex για γνωστά πρότυπα
  • Αναθεώρηση αποδείξεων εξόδου για το tune parsing
  • Ασφαλή πρωτότυπα / επεξεργασμένα αρχεία για έλεγχο
  • Αναβάθμιση της λογικής εξόρυξης με την αλλαγή προμηθευτών / προτύπων

Προχωρημένα σενάρια

Σενάριο 1: Τα στοιχεία της γραμμής χάρτη σε ERP / βάση δεδομένων

Χρησιμοποιήστε κλήσεις ORM ή API για να πιέσετε τα δεδομένα του πίνακα που εξάγονται.

Σενάριο 2: Χρησιμοποιήστε πολυεπίπεδη πίνακες

Επεκτείνετε τη λογική για να διασχίσετε τις διακοπές της σελίδας PDF/image.

Συμπεράσματα

Το Aspose.OCR Invoice to Text for .NET επιτρέπει την εξαγωγή λεπτομερών στοιχείων και τραπεζογραμματίων γραμμής τιμολόγησης - επιτρέποντας την πλήρη αυτοματοποίηση από τη σάρωση / τη φωτογραφία σε δομημένα, ενεργοποιημένα δεδομένα.

Βλέπε πιο δομημένο κώδικα εξόρυξης στο Aspose.OCR για την αναφορά .NET API .

 Ελληνικά