Kuinka poistaa laskutuslinjan kohteet ja rakenteelliset taulukot

Kuinka poistaa laskutuslinjan kohteet ja rakenteelliset taulukot

Linjan kohteiden ja taulukkojen poistaminen laskuista on avain maksullisten tilien, auditointien ja kulutusanalyysien täydelliseen automaatioon. ASPOSE.OCR Lasku tekstiin .NET avulla voit jakaa yksityiskohtaisia, monivärisiä ja monikerroksisia tietoja – jopa skannatuista tai valokuvattuista asiakirjoista.

Reaalimaailman ongelma

Laskut sisältävät taulukoita tuotteista / palveluista - manuaalisesti kirjoittaminen on ajankuluttavaa ja virheellistä. Täysi automaatio vaatii kiinteän tarjonnan kohdistetuista yksityiskohdista.

Ratkaisun yleiskatsaus

Käytä OCR:tä tunnistaa taulukon alueet, jakaa jokainen rivi ja sarake ja viedä strukturoituihin muodoihin ERP, BI tai lisäanalyysi.

edellytykset

  • Visual Studio 2019 tai uudempi
  • .NET 6.0 tai uudempi (tai .Net Framework 4.6.2+)
  • ASPOSE.OCR for .NET alkaen NuGet
  • Esimerkki laskun kuvia tai PDF-tiedostoja, joilla on linjan kohteet/taulukot
PM> Install-Package Aspose.OCR

Vaiheittainen toteutus

Vaihe 1: Valmista laskun kuva/PDF

string invoiceFile = "invoice_with_items.pdf";

Vaihe 2: Tunnista taulukon/linjan kohteiden alueet

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;

Vaihe 3: Valitse tunnistetut tekstit pöytäkirjoihin / sarakkeisiin

  • Käytä regex- tai räätälöityä logiikkaa erottamaan linja-elementtejä rivi/kolonnalla
// 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.
    }
}

Vaihe 4: Export Line Items/Table to CSV

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

Vaihe 5: Täydellinen esimerkki

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

Käytä tapauksia ja sovelluksia

Käytä Analytics ja AP Automation

Poisto kohdennetut kulut raportointiin, ennustamiseen ja hyväksymiseen.

Laskutarkastus ja tarkastus

Streamline auditointi / hyväksyminen vientiä, koneellisesti luettavissa olevien yksityiskohtien kanssa.

ERP / rahoitusjärjestelmän integrointi

Suoraan ladata rakenteelliset taulukon tiedot rahoitus- tai ERP-ohjelmistoon.

Yhteiset haasteet ja ratkaisut

Haaste 1: Monipuoliset pöytämuodot

** Ratkaisu:** Tune regex ja parsing logiikka jokaiselle toimittajalle/templateille.

Haaste 2: OCR:n tunnistamisvirheet sarakkeissa

** Ratkaisu:** Käytä sarakkeita, pyydä korkealaatuisia skannauksia tai lippua manuaaliseen tarkistukseen.

Haaste 3: Menetetyt tai kadonneet sarjat

** Ratkaisu:** Normalisoida, jakaa tai tarkistaa välittömästi epäselviä tapauksia.

suorituskyvyn huomioon ottaminen

  • Batch käsittelee useita laskuja rinnakkain
  • Log/flag parsing ongelmat ihmisen tarkastelu

Parhaat käytännöt

  • Rakenna regex-kirjasto tunnetuille malleille
  • Katso näytteet tuloksista tune parsing
  • Turvalliset alkuperäiset/käsitetyt tiedostot tilintarkastukseen
  • Päivitä kaivoksen logiikkaa toimittajien / mallien muutoksena

Edistyneet skenaariot

Skenaario 1: Kartta-linjan kohteet ERP/tietokantaan Suorasti

Käytä ORM- tai API-puheluita painamaan poistettuja taulukon tietoja.

Käsikirjoitus 2: Käytä monivuotisia taulukoita

Laajenna logiikkaa parselle läpi PDF/kuvan sivun taukoja.

johtopäätöksiä

Aspose.OCR Invoice to Text for .NET mahdollistaa yksityiskohtaisten laskutuslinjan kohteiden ja taulukoiden tuottamisen – mahdollistaen täydellisen automatisoinnin skannauksesta/kuvasta rakenteellisiin, käytettävissä oleviin tietoihin.

Katso rakenteellisempia koodeja kohteessa ASPOSE.OCR .NET API-referenssille .

 Suomi