Kaip ištraukti sąskaitos linijos elementus ir struktūrines lenteles
Linijos elementų ir lentelių ištraukimas iš sąskaitų yra raktas visiškai automatizuoti mokamų sąrašų, auditus ir išlaidų analitiką. Aspose.OCR Sąskaita į tekstą .NET leidžia jums atskleisti išsamius, daugiapakopinius, daugiakolumbinius duomenis – net iš skanintų ar fotografuotų dokumentų.
Realaus pasaulio problemos
Sąskaitose yra produktų / paslaugų lentelių - rankiniu būdu jų perrašymas yra laiko ir klaidų priežastis.
Sprendimo apžvalga
Naudokite OCR, kad atpažintumėte lentelės regionus, suskirstykite kiekvieną eilutę ir stulpelį ir eksportuokite į struktūrizuotus formatus ERP, BI ar tolesnio analizės tikslais.
Prerequisites
- „Visual Studio 2019“ arba vėliau
- .NET 6.0 arba naujesnė (arba .Net Framework 4.6.2+)
- ASPOSE.OCR už .NET iš NuGet
- Pavyzdžiui, sąskaitos nuotraukos arba PDF su eilutėmis / lentelėmis
PM> Install-Package Aspose.OCR
Žingsnis po žingsnio įgyvendinimas
1 žingsnis: paruoškite sąskaitos nuotrauką / PDF
string invoiceFile = "invoice_with_items.pdf";
2 žingsnis: atpažinti lentelės / linijos elementų regionus
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 žingsnis: Pažymėkite pripažintą tekstą į lentelių ratus / stulpelius
- Naudokite regex arba pritaikytą logiką, kad atskirtumėte eilutės elementus pagal eilės / stulpelio apribojimus
// 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 žingsnis: eksporto linijos elementai / lentelė į CSV
using (var writer = new StreamWriter("invoice_lineitems.csv"))
{
writer.WriteLine("SKU,Description,Qty,UnitPrice,Total");
// Loop and write line items parsed above
}
5 žingsnis: pilnas pavyzdys
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));
}
}
}
Naudokite atvejus ir paraiškas
Apžvalga ir AP automatizavimas
Ekstraktas išdėstytas sąnaudas ataskaitoms, prognozavimui ir patvirtinimui.
Sąskaitos auditas ir peržiūra
Streamline auditas / patvirtinimas su eksportuojamais, mašinų skaitymo duomenimis.
ERP / finansų sistemos integracija
Tiesiogiai įkrauti struktūrizuotus lentelės duomenis į finansinę arba ERP programinę įrangą.
Bendrieji iššūkiai ir sprendimai
Iššūkis 1: Įvairios lentelės formatos
Išsprendimas: Kiekvienam tiekėjui / šablonui pateikiama regex ir parsing logika.
2 iššūkis: OCR atpažinimo klaidos kolonose
Išsprendimas: Naudokite stulpelio heuristiką, prašome aukštos kokybės skenavimo arba vėliavos rankiniu būdu peržiūrėti.
3 iššūkis: dingusios ar prarastos kolonos
Išsprendimas: Normalizuoti, suskirstyti arba skubiai peržiūrėti abejingus atvejus.
Veiksmingumo apžvalgos
- Batch procesas kelis sąskaitas lygiagrečiai
- Log/flag parsing klausimai žmogaus apžvalga
Geriausios praktikos
- Sukurkite regex biblioteką žinomų šablonų
- Apžvalga mėginių išeitis tune parsing
- Saugūs originalūs / tvarkomi failai auditui
- Atnaujinkite ekstrakcijos logiką, kai keičiasi tiekėjai / šablonai
Išplėstiniai scenarijai
1 scenarijus: žemėlapio linijos elementai į ERP / duomenų bazę tiesiogiai
Naudokite ORM arba API skambučius, kad paspaustumėte išvestus lentelės duomenis.
2 scenarijus: tvarkykite daugialypę lentelę
Išplėskite logiką per PDF / vaizdo puslapio lūkesčius.
Conclusion
Aspose.OCR Invoice to Text for .NET leidžia išgauti išsamius sąskaitos eilutės elementus ir lenteles, leidžiančias visiškai automatizuoti nuo skenavimo / nuotraukos iki struktūrizuotų, veiksmingų duomenų.
Žiūrėti daugiau struktūrizuotą ekstrakcijos kodą ASPOSE.OCR už .NET API nuorodą .