Hogyan lehet kivonni a számlázási vonal elemeket és strukturált táblákat

Hogyan lehet kivonni a számlázási vonal elemeket és strukturált táblákat

A számlákból származó vonaljegyek és táblák kivonása kulcsfontosságú a fizetős fiókok teljes automatizálásához, a könyvvizsgálatokhoz és a kiadási elemzésekhez. Aspose.OCR Számlázás a .NET szöveghez lehetővé teszi, hogy részletes, többszögű, sok oszlopos adatokat - még a szkennelt vagy fényképezett dokumentumokból is.

Valódi problémák

A számlák tartalmazzák a termékek/szolgáltatások tábláit – ezeket manuálisan átírva idő-fogyasztó és hibás.

megoldás áttekintése

Használja az OCR-t a táblázati régiók felismerésére, az egyes sorok és oszlopok párosítására és az ERP, BI vagy további elemzés strukturált formátumaiba történő exportálására.

előfeltételek

  • Visual Studio 2019 vagy újabb
  • .NET 6.0 vagy újabb (vagy .Net Framework 4.6.2+)
  • ASPOSE.OCR for .NET a NuGet-ről
  • Példa számlázási képek vagy PDF-k lineáris elemekkel / táblákkal
PM> Install-Package Aspose.OCR

lépésről lépésre megvalósítás

1. lépés: Készítsen számlázási képet/PDF

string invoiceFile = "invoice_with_items.pdf";

2. lépés: Ismerje meg a táblázat/vonal elem régióit

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. lépés: A felismert szöveget az asztali oszlopokba/táblákba osztja

  • Használja a regex-t vagy a személyre szabott logikát a sor- és oszlop-delimitátorok elválasztására
// 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. lépés: Export Line Elemek/Táblák CSV

using (var writer = new StreamWriter("invoice_lineitems.csv"))
{
    writer.WriteLine("SKU,Description,Qty,UnitPrice,Total");
    // Loop and write line items parsed above
}

5. lépés: Teljes példa

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));
        }
    }
}

Esetek és alkalmazások használata

Az elemzés és az AP automatizálás

Kivonat elemzett kiadások jelentéstételi, előrejelzési és jóváhagyási.

Számlázási ellenőrzés és felülvizsgálat

Streamline ellenőrzés / jóváhagyás exportálható, gépesen olvasható részletekkel.

ERP / Pénzügyi rendszer integráció

Közvetlenül töltse fel a strukturált táblázatadatokat pénzügyi vagy ERP szoftverbe.

Közös kihívások és megoldások

1. kihívás: változatos táblázatformátumok

** Megoldás:** A regex és a parsing logikája minden beszállító/template számára.

2. kihívás: Az OCR felismerési hibák oszlopokban

Teljesítmény: Használja a oszlop hegyrisztikáját, kérje a magasabb minőségű szkenneléseket, vagy zászlót a kézi felülvizsgálathoz.

3. kihívás: Eltűnt vagy elveszett oszlopok

** Megoldás: ** Normalizálja, osztja, vagy azonnali felülvizsgálat kétértelmű esetekben.

A teljesítmény megfontolása

  • A Batch párhuzamosan több számlát feldolgoz
  • Log/flag parsing problémák emberi felülvizsgálat

Legjobb gyakorlatok

  • Építsen regex könyvtárat a jól ismert mintákhoz
  • Áttekintés minták kimenetelét a tune parsing
  • Biztonságos eredeti / feldolgozott fájlok ellenőrzéshez
  • Aktualizáljuk a kivonási logikát a beszállítók / minták változásakor

fejlett forgatókönyvek

1. forgatókönyv: Térképvonal Elemek az ERP/adatbázisba Közvetlenül

Használja az ORM vagy az API hívásokat, hogy nyomja ki a kivont táblázatadatokat.

2. forgatókönyv: Többoldalú táblák kezelése

Kiterjeszti a logikát a PDF / kép oldal szakadékokon keresztül.

következtetések

Az ASPOSE.OCR Invoice to Text for .NET lehetővé teszi a részletes számlázási sor elemeinek és tábláinak kivonását – amely teljes automatizálást biztosít a szkennelésről/fotózásról a strukturált, működőképes adatokra.

Lásd a strukturált kivonási kódot a Az ASPOSE.OCR a .NET API referenciájához .

 Magyar