Kā izrakstīt rēķinu līnijas priekšmetus un strukturētas tabulas
Izņemt līnijas priekšmetus un tabulas no rēķiniem ir galvenais, lai pilnībā automātiski maksājamo kontu, revīzijas un izmaksas analīzes. Aspose.OCR Rēķins uz tekstu .NET ļauj jums parakstīt detalizētus, multi-row, daudzstūres datus – pat no skenētiem vai fotografētajiem dokumentiem.
Reālā pasaules problēma
Faktūras satur tabulas par produktiem / pakalpojumiem - manuāli pārrakstot tos ir laika un kļūdas.
Risinājumu pārskats
Izmantojiet OCR, lai atpazītu tabulas reģionus, atšķaidītu katru randi un slāni un eksportētu strukturētos formātus ERP, BI vai turpmākai analīzei.
Prerequisites
- Visual Studio 2019 vai vēlāk
- .NET 6.0 vai jaunāks (vai .Net Framework 4.6.2+)
- Aspose.OCR par .NET no NuGet
- Piemērojiet rēķinu attēlus vai PDF ar līnijas priekšmetiem / tabulām
PM> Install-Package Aspose.OCR
Step-by-step īstenošana
1. solis: sagatavojiet rēķina attēlu/PDF
string invoiceFile = "invoice_with_items.pdf";
2. solis: Atzīt tabulas / līnijas priekšmetu reģionus
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. solis: atzītās teksta sadalīšana tabulās / kolonnās
- Izmantojiet regex vai pielāgotu loģiku, lai izdalītu līnijas priekšmetus ar rindas / kolonnas mērītājiem
// 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. solis: eksporta līnijas priekšmeti / tabula uz CSV
using (var writer = new StreamWriter("invoice_lineitems.csv"))
{
writer.WriteLine("SKU,Description,Qty,UnitPrice,Total");
// Loop and write line items parsed above
}
5. solis: pilns piemērs
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));
}
}
}
Izmantojiet gadījumus un pieteikumus
Ieguldīt Analytics un AP Automation
Ekstrakts ietaupīts izdevumi ziņošanai, prognozēšanai un apstiprināšanai.
Rēķinu revīzija un pārskatīšana
Streamline audits / apstiprinājums ar eksporta, mašīnlasāmām detaļām.
ERP/Finanšu sistēmas integrācija
Tiešām uzlādēt strukturētus tabulas datus finanšu vai ERP programmatūrā.
Kopīgi izaicinājumi un risinājumi
1. uzdevums: dažādi galda formāti
Rīkojums: Tune regex un parsing loģika katram piegādātājs / template.
2. izaicinājums: OCR atzīšanas kļūdas kolonnās
Lēmums: Izmanto kolonnas heuristiku, pieprasīt augstākas kvalitātes skenēšanu vai zīmi manuālajai pārskatīšanai.
3. izaicinājums: pazuduši vai zaudētie kolonnas
Lēmums: Normalizēt, sadalīt vai ātri pārskatīt abpusējos gadījumos.
Darbības apsvērumi
- Batch apstrādā vairākus rēķinus paralēli
- Log/flag parsing jautājumi cilvēka pārskatīšanai
Labākās prakses
- Izveidojiet regex bibliotēku zināmiem šabloniem
- Pārskats paraugu iznākumi tune parsing
- Drošs oriģināls / apstrādāts fails revīzijai
- Aktualizēt ekstrakcijas loģiku kā piegādātāji / paraugi mainās
Augstākie scenāriji
Scenārija 1: Kartes līnijas priekšmeti uz ERP / datu bāzi Tiešām
Izmantojiet ORM vai API zvanus, lai nospiežtu iegūtos tabulas datus.
2. scenārijs: Multi-pages tabulas
Paplašiniet loģiku, lai pāriet uz PDF / attēla lapas pārtraukumiem.
Conclusion
Aspose.OCR Invoice to Text for .NET ļauj izrakstīt detalizētus faktūras līnijas priekšmetus un tabulas, kas ļauj pilnībā automatizēt no skenēšanas/fotogrāfijas uz strukturētiem, darbojamiem datiem.
Skatīt vairāk strukturētu ekstrakcijas kodu Aspose.OCR par .NET API atsauci .