Com extreure els articles de línia de factura i taules estructurades
L’extracció d’articles de línia i taules de les factures és clau per a la completa automatització de comptes pagables, audits i anàlisis de despeses. Aspose.OCR Invoice to Text per .NET li permet parsejar dades detallades, multi-rous, múltiples columnes - fins i tot de documents escanats o fotografiats.
El problema del món real
Les factures contenen taules de productes / serveis - la transcripció manual d’aquests és de temps i per error. l’automatització completa requereix una robusta extracció de detalls esmentats.
Revisió de solucions
Utilitzeu OCR per reconèixer regions de taula, parseu cada ronda i columna, i exportar a formats estructurats per a ERP, BI, o anàlisi addicional.
Prerequisits
- Visual Studio 2019 o posterior
- .NET 6.0 o posterior (o .Net Framework 4.6.2+)
- Aspose.OCR per a .NET des de NuGet
- Mostra imatges de factura o PDFs amb elements de línia / taules
PM> Install-Package Aspose.OCR
Implementació de pas a pas
Pas 1: Prepareu la imatge de factura/PDF
string invoiceFile = "invoice_with_items.pdf";
Pas 2: Reconèixer les regions de taula / línia d’articles
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;
Pas 3: Parseu el text reconegut en runes de taula/columnes
- Utilitza la lògica regex o personalitzada per separar els elements de línia per delimitors de ronda/columna
// 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.
}
}
Pas 4: Línia d’exportació dels elements / taula a CSV
using (var writer = new StreamWriter("invoice_lineitems.csv"))
{
writer.WriteLine("SKU,Description,Qty,UnitPrice,Total");
// Loop and write line items parsed above
}
Pas 5: Exemple complet
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));
}
}
}
Utilitzar casos i aplicacions
Gestió d’anàlisi i automatització AP
L’extracte es destina a les despeses per a la informació, la previsió i l’aprovació.
Auditoria i revisió de la factura
Audit / aprovació de la línia de flux amb detalls exportables i llegibles per màquina.
Integració del sistema ERP/Financial
Carregar directament les dades de taula estructurades en el programari financer o ERP.
Els reptes i les solucions comunes
Títol 1: Diversos formats de taula
Solució: Tuneu la lògica de regx i pars per a cada proveïdor/templat.
Challenge 2: Errors de reconeixement OCR en columnes
Solució: Utilitzeu les heurístiques de columnes, sol·liciteu escans d’alta qualitat, o bandera per a la revisió manual.
Títol 3: Columnes perdudes o desaparegudes
** Solució: ** Normalitzar, dividir o revisar ràpidament en els casos ambigüos.
Consideracions de rendiment
- Batch processar múltiples factures en paral·lel
- Log/flag parsing problemes per a la revisió humana
Les millors pràctiques
- Construcció de la biblioteca de regx per a temples coneguts
- Revisió de les sortides de mostra per a tune parsing
- Arxius originals i processats segurs per a auditoria
- Actualitza la lògica d’extracció com els proveïdors/templates canvien
Escenaris avançats
Escenari 1: Map Line Items a ERP / Base de dades directament
Utilitzeu les trucades ORM o API per empènyer les dades de taula extraïdes.
Escenari 2: Gestió de taules multipàgines
Extensió de la lògica a parse a través de les pauses de pàgina PDF/imatge.
Conclusió
Aspose.OCR Invoice to Text for .NET permet extreure detallats elements i taules de la línia de factura - permetent la completa automatització de l’escaneig/foto a dades estructurades i executables.
Veure el codi d’extracció més estructurat a la Aspose.OCR per a .NET API Referència .