Come estrarre gli articoli della linea di fattura e le tabelle strutturate
L’estrazione di articoli e tabelle di linea dalle bollette è la chiave per l’automazione completa dei conti pagabili, gli audit e le analisi delle spese. Aspose.OCR Invoice to Text per .NET consente di parsire dettagliati, multi-ro, dati multi colonne - anche da documenti scansionati o fotografati.
Il problema del mondo reale
Le bollette contengono tabelle di prodotti/servizi – la trascrizione manuale di questi è tempo-consumo e errore-prote.
Soluzione Overview
Utilizzare OCR per riconoscere le regioni di tabella, parsi ogni riga e colonna, ed esportare a formati strutturati per ERP, BI, o ulteriori analisi.
Prerequisiti
- Visual Studio 2019 o successivo
- .NET 6.0 o successivo (o .Net Framework 4.6.2+)
- Aspose.OCR per .NET da NuGet
- Immagini di fattura di campione o PDF con elementi di linea / tabelle
PM> Install-Package Aspose.OCR
Implementazione passo dopo passo
Passo 1: Preparazione Immagine di fatturazione/PDF
string invoiceFile = "invoice_with_items.pdf";
Passo 2: Riconoscere le regioni di tabella / linea
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;
Passo 3: Parsa il testo riconosciuto in rami/colonne da tavolo
- Utilizzare regex o logica personalizzata per separare gli articoli di linea con delimitatori di riga/colonna
// 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.
}
}
Passo 4: Elementi di linea di esportazione/Tabella a CSV
using (var writer = new StreamWriter("invoice_lineitems.csv"))
{
writer.WriteLine("SKU,Description,Qty,UnitPrice,Total");
// Loop and write line items parsed above
}
Passo 5: Un esempio completo
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));
}
}
}
Utilizzare casi e applicazioni
Spend Analytics e AP Automation
L’estratto è destinato alle spese per la segnalazione, la previsione e l’approvazione.
Audit e revisione della fattura
Audit/approvazione di linea con dettagli esportabili e leggibili dalla macchina.
Integrazione del sistema ERP/Finanza
Caricare direttamente i dati di tabella strutturati in software finanziario o ERP.
Sfide e soluzioni comuni
Challenge 1: vari formati di tavolo
Soluzione: Tune reggex e parsing logica per ciascun fornitore/template.
Challenge 2: errori di riconoscimento OCR nelle colonne
Soluzione: Utilizzare l’euristica della colonna, richiedere scansioni di alta qualità o bandiera per la revisione manuale.
Challenge 3: Colonne scomparse o perdute
**Soluzione: ** Normalizzare, dividere o ripetere la revisione in casi ambigui.
Considerazioni di prestazioni
- Batch processa più fatturazioni in parallelo
- Log/flag parsing questioni per la revisione umana
Migliori pratiche
- Costruisci una biblioteca regex per i modelli conosciuti
- Recensione delle uscite di campione per tune parsing
- File originali/processate sicure per l’audit
- Aggiornare la logica di estrazione come cambiano fornitori/template
Scenari avanzati
Scenario 1: Map Line Items to ERP/Database Directly
Utilizzare chiamate ORM o API per premere i dati di tabella estratti.
Scenario 2: Gestire tabelle multi-pagine
Estendere la logica a parsi attraverso le interruzioni di pagina PDF/immagine.
conclusione
Aspose.OCR Invoice to Text per .NET consente di estrarre dettagliati articoli e tabelle della linea di fatturazione – consentendo l’automazione completa dalla scansione/foto ai dati strutturati e attivabili.
Vedi il codice di estrazione più strutturato nel Aspose.OCR per .NET API Reference .