Ako extrahovať fakturačné línie položky a štruktúrované tabuľky
Odstránenie riadkových položiek a tabuliek z faktúr je kľúčom k plnej automatizácii platených účtov, audícií a analýz výdavkov. Aspose.OCR Invoice to Text for .NET vám umožní rozdeliť podrobné, viacvrstvové, viaceré stĺpce – dokonca aj z skenovaných alebo fotografovaných dokumentov.
Reálny svetový problém
Faktúry obsahujú tabuľky produktov/služieb – manuálne ich prepisovanie je časovo náročné a bezchybné.
Prehľad riešenia
Použite OCR na rozpoznanie tabuľkových regiónov, rozdeliť každý riadok a stĺpec a exportovať do štruktúrovaných formátov pre ERP, BI alebo ďalšie analýzy.
Predpoklady
- Visual Studio 2019 alebo neskôr
- .NET 6.0 alebo novší (alebo .Net Framework 4.6.2+)
- Aspose.OCR pre .NET od NuGet
- Vzorové fakturačné obrázky alebo PDF s riadkovými položkami / tabuľkami
PM> Install-Package Aspose.OCR
krok za krokom implementácia
Krok 1: Pripravte fakturačný obrázok/PDF
string invoiceFile = "invoice_with_items.pdf";
Krok 2: Rozpoznávanie tabuľkových/line položiek regiónov
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;
Krok 3: Rozdeľte rozpoznaný text do tabuľkových riadkov/kolónov
- Použite regex alebo prispôsobenú logiku na rozdelenie položiek podľa riadkov / stĺpcov
// 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.
}
}
Krok 4: Vývoz línie položky / tabuľky do CSV
using (var writer = new StreamWriter("invoice_lineitems.csv"))
{
writer.WriteLine("SKU,Description,Qty,UnitPrice,Total");
// Loop and write line items parsed above
}
Krok 5: Kompletný príklad
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));
}
}
}
Použitie prípadov a aplikácií
Analýza a AP automatizácia
Extrakt objektizované výdavky na hlásenie, predpovede a schvaľovanie.
Audit a revízia faktúr
Streamline audit / schvaľovanie s exportovateľnými, strojovo čitateľnými detailmi.
Integrovanie ERP/finančného systému
Bezprostredne nahrať štruktúrované tabuľkové údaje do finančného alebo ERP softvéru.
Spoločné výzvy a riešenia
Výzva 1: Rozmanité formáty tabuľky
Riešenie: Tune regex a parsing logika pre každého dodávateľa/templátu.
Výzva 2: Chyby pri rozpoznávaní OCR v stĺpcoch
Riešenie: Použite stĺpcovú heuristiku, požiadajte o vyššiu kvalitu skenovania alebo vlajku pre manuálne preskúmanie.
Výzva 3: Mŕtve alebo stratené stĺpce
**Riešenie: ** Normalizovať, rozdeliť, alebo okamžite preskúmať na nejednoznačné prípady.
Preskúmanie výkonnosti
- Batch spracúva viaceré faktúry v paralelnej
- Log/flag parsing problémy pre ľudskú recenziu
Najlepšie postupy
- Vytvorte regex knižnicu pre známe šablóny
- Preskúmať vzorky výstupov na tune parsing
- Bezpečné originálne / spracované súbory pre audit
- Aktualizácia logiky extrakcie ako sa menia dodávatelia / šablóny
Pokročilé scenáre
Scenár 1: Mapové línie položiek na ERP/Database priamo
Použite ORM alebo API hovory tlačiť extrahované tabuľkové údaje.
Scenár 2: Spracovať viacstránkové tabuľky
Rozšíriť logiku na parse cez prerušenia PDF / obrázok stránky.
Záver
Aspose.OCR Invoice to Text for .NET umožňuje extrahovať podrobné položky a tabuľky v línii faktúry – čo umožňuje plnú automatizáciu od skenovania/fotografie až po štruktúrované, funkčné údaje.
Pozri viac štruktúrovaný extrakčný kód v Aspose.OCR pre .NET API referencie .