Kako izvaditi račune i strukturirane tablice
Izvlačenje linije predmeta i tablica iz računa je ključ za potpunu automatizaciju plaćene račune, revizije i analize troškova. Aspose.OCR Invoice to Text for .NET omogućuje vam da podijelite detaljne, višestruke, više kolona podatke – čak i iz skeniranih ili fotografiranih dokumenata.
Real-svjetski problem
Računovodstva sadrže tablice proizvoda/službi – ručno ih transcribiranje je vremensko i pogrešno.Puna automatizacija zahtijeva čvrstu ekstrakciju postavljenih detalja.
Pregled rješenja
Koristite OCR za prepoznavanje tabličnih područja, razdvajanje svakog redova i kolona i izvoz u strukturirane formate za ERP, BI ili daljnju analizu.
Preduzeća
- Visual Studio 2019 ili kasnije
- .NET 6.0 ili noviji (ili .Net Framework 4.6.2+)
- Aspose.OCR za .NET od NuGet
- Prikaz računa slike ili PDF-ove s linijskim predmetima/tablicama
PM> Install-Package Aspose.OCR
Korak po korak provedba
Korak 1: Pripremite sliku računa/PDF
string invoiceFile = "invoice_with_items.pdf";
Korak 2: Prepoznajte područje tablice / linije predmeta
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;
Korak 3: Razdvajanje prepoznatljivog teksta u stolne krugove/kolonice
- Koristite regex ili prilagođenu logiku za razdvajanje elemenata u redovima/kolonima
// 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.
}
}
Korak 4: Izvoz linije predmeta / tablice na CSV
using (var writer = new StreamWriter("invoice_lineitems.csv"))
{
writer.WriteLine("SKU,Description,Qty,UnitPrice,Total");
// Loop and write line items parsed above
}
Četvrti korak: potpuni primjer
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));
}
}
}
Korištenje slučajeva i aplikacija
Analitička analiza i AP automatizacija
Ekstrakt se sastoji od troškova za izvješćivanje, predviđanje i odobrenje.
Revizija i reviziju računa
Revizija / odobrenje struje s izvoznim, strojno čitljivim detaljima.
ERP/financijska integracija
Izravno preuzimanje strukturiranih tablica podataka u financijsko ili ERP softver.
Zajednički izazovi i rješenja
Izazov 1: Različiti formati stolova
Rješenje: Tune regex i parsing logika za svakog dobavljača/templata.
Izazov 2: OCR prepoznavanje pogrešaka u stolpcima
Rješenje: Koristite slušalice, zatražite skeniranje visoke kvalitete ili zastavu za ručni pregled.
Izazov 3: Izgubljeni ili nestali stolpci
Rješenje: Normalizirajte, razdvojite ili brzo pregledajte u dvostrukim slučajevima.
Razmatranje učinkovitosti
- Batch proces više računa u paralelnom obliku
- Log/flag parsing pitanja za ljudski pregled
Najbolje prakse
- Izgradnja regex knjižnice za poznate šablone
- Pregled ispitnih izvora za tun parsing
- Sigurna originalna/procesirana datoteka za reviziju
- Aktualizirajte logiku ekstrakcije kao promjena dobavljača / predmeta
Napredni scenariji
Scenarij 1: Map Line predmeti na ERP/Database izravno
Koristite ORM ili API pozive za pritisak izvedenih podataka o tablici.
Scenarij 2: Preuzmite više stranica
Proširite logiku na parse preko PDF/image stranica prekida.
zaključak
Aspose.OCR Invoice to Text for .NET omogućuje ekstrakciju detaljnih elemenata i tablica linije računa – omogućavajući potpunu automatizaciju od skeniranja/fotografije do strukturiranih, aktivnih podataka.
Pogledajte strukturiraniji kod ekstrakcije u Aspose.OCR za .NET API reference .