Kā izrakstīt rēķinu līnijas priekšmetus un strukturētas tabulas

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 .

 Latviski