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 .