Bagaimana untuk mengekstrak item garis invois dan tabel terstruktur

Bagaimana untuk mengekstrak item garis invois dan tabel terstruktur

Mengekstrak item baris dan tabel dari invois adalah kunci untuk otomatisasi penuh akun yang dapat dibayar, audit, dan menghabiskan analisis. Aspose.OCR Invoice to Text for .NET memungkinkan Anda untuk membagikan data terperinci, multi-row, Multi-column – bahkan dari dokumen yang dipindai atau difoto.

Masalah dunia nyata

Invois mengandung tabel produk/perkhidmatan—menulis secara manual ini adalah waktu yang memakan waktu dan kesalahan-kesalahan. otomatisasi penuh membutuhkan pengekstraksian detail yang kuat.

Penyelesaian Overview

Gunakan OCR untuk mengidentifikasi daerah tabel, memisahkan setiap baris dan kolom, dan mengekspor ke format terstruktur untuk ERP, BI, atau analisis lebih lanjut.

Persyaratan

  • Visual Studio 2019 atau lebih baru
  • .NET 6.0 atau lebih baru (atau .Net Framework 4.6.2+)
  • Aspose.OCR untuk .NET dari NuGet
  • Contoh gambar invois atau PDF dengan item baris / tabel
PM> Install-Package Aspose.OCR

Implementasi langkah demi langkah

Langkah 1: Siapkan Invoice Image/PDF

string invoiceFile = "invoice_with_items.pdf";

Langkah 2: Mengidentifikasi Jadual/Line Item Region

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;

Langkah 3: Membahagikan teks yang diidentifikasi ke dalam tab / kolom

  • Gunakan regex atau logika tersuai untuk membagi item baris dengan delimeter baris/kolom
// 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.
    }
}

Langkah 4: Export Line Items/Tabel ke CSV

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

Langkah 5: Contoh lengkap

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

Menggunakan kasus dan aplikasi

Menghabiskan Analytics dan AP Automation

Ekstrak itemized biaya untuk melaporkan, memprediksi, dan kelulusan.

Audit dan Revisi Keuangan

Audit / kelulusan Streamline dengan detail yang dapat diekspor, dapat dibaca mesin.

Integrasi ERP / Sistem Keuangan

Langsung muat data tabel terstruktur ke dalam perangkat lunak keuangan atau ERP.

Tantangan dan Solusi Umum

Tantangan 1: Format tabel yang bervariasi

** Solusi:** Tune regex dan parsing logik untuk masing-masing supplier/template.

Tantangan 2: Kesalahan Pengenalan OCR dalam Kolom

** Solusi:** Gunakan heuristik kolom, minta pemindaian berkualitas tinggi, atau bendera untuk review manual.

Tantangan 3: Kolom yang hilang atau hilang

** Solusi:** Normalisasi, pemisahan, atau pemeriksaan segera pada kasus ambigu.

Pertimbangan kinerja

  • Batch memproses beberapa invois secara paralel
  • Log/Flag Parsing Masalah untuk Ulasan Manusia

Praktik Terbaik

  • Membangun perpustakaan regex untuk template yang diketahui
  • Review sampel output untuk tune parsing
  • File asli / yang diproses untuk audit
  • Memperbarui logika ekstraksi saat pembekal/template berubah

Skenario Lanjutan

Skenario 1: Elemen garis peta ke ERP/Database Langsung

Gunakan panggilan ORM atau API untuk menekan data tabel yang dikeluarkan.

Skenario 2: Mengendalikan Jadual Multi-Page

Perpanjangan logika ke parse melalui PDF/image page breaks.

Kesimpulan

Aspose.OCR Invoice to Text for .NET memungkinkan untuk mengekstrak item dan tabel rangkaian invois terperinci—mengizinkan otomatisasi penuh dari pemindaian/foto ke data terstruktur, yang dapat dioperasikan.

Lihat kode ekstraksi yang lebih terstruktur di Aspose.OCR untuk .NET API Referensi .

 Indonesia