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 .