Bagaimana untuk mengekstrak item garis invois dan jadual terstruktur
Mengekstrak item baris dan jadual daripada invois adalah kunci untuk automatik penuh akaun yang boleh dibayar, audit, dan analisis perbelanjaan. Aspose.OCR Invoice to Text untuk .NET membolehkan anda untuk memotong terperinci, multi-row, data pelbagai lajur—walaupun daripada dokumen yang disemak atau difoto.
Masalah dunia sebenar
Invois mengandungi jadual produk/perkhidmatan—menulis secara manual ini adalah masa-menghabiskan dan error-prone. automatik penuh memerlukan pengekstrakan yang kukuh daripada butiran item.
Gambaran keseluruhan penyelesaian
Gunakan OCR untuk mengenal pasti kawasan jadual, berkongsi setiap baris dan lajur, dan mengeksport ke format berstruktur untuk ERP, BI, atau analisis lanjut.
Prerequisites
- Visual Studio 2019 atau seterusnya
- .NET 6.0 atau lebih baru (atau .Net Framework 4.6.2+)
- Aspose.OCR untuk .NET daripada NuGet
- Contoh imej invois atau PDF dengan item baris / jadual
PM> Install-Package Aspose.OCR
Pelaksanaan langkah demi langkah
Langkah 1: Sediakan imej invois / PDF
string invoiceFile = "invoice_with_items.pdf";
Langkah 2: Mengenalpasti 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 diiktiraf ke dalam tab / lajur
- Gunakan regex atau logik tersuai untuk membahagikan 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: Eksport Barisan Item/Jadual 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));
}
}
}
Penggunaan Kasus dan Permohonan
Menghabiskan Analisis dan AP Automation
Ekstrak itemized perbelanjaan untuk melaporkan, ramalan, dan kelulusan.
Invoice Audit dan Ulasan
Audit / kelulusan aliran dengan butiran yang boleh dieksport, boleh dibaca mesin.
Integrasi ERP / Sistem Kewangan
Langsung muat data jadual terstruktur ke dalam perisian kewangan atau ERP.
Tantangan dan Penyelesaian Bersama
Tantangan 1: Format Jadual Bervariasi
** Penyelesaian:** Tune regex dan parsing logik untuk setiap pembekal/template.
Tantangan 2: Kesilapan pengiktirafan OCR dalam lajur
** Penyelesaian:** Gunakan heuristik lajur, meminta pemindaian yang berkualiti tinggi, atau bendera untuk ulasan manual.
Tantangan 3: Kolom yang hilang atau hilang
** Penyelesaian:** Normalisasi, dibahagikan, atau ulasan segera pada kes-kes yang tidak jelas.
Pertimbangan prestasi
- Batch memproses bil berbilang secara serentak
- Log/Flag Parsing Masalah untuk Ulasan Manusia
amalan terbaik
- Membina perpustakaan regex untuk templat yang diketahui
- Ulasan sampel output untuk tune parsing
- Fail asli / yang diproses untuk audit
- Mengemas kini logik pengekstrakan sebagai pembekal / templat berubah
Senario lanjutan
Senario 1: Item garis peta ke ERP/Database secara langsung
Gunakan panggilan ORM atau API untuk menekan data jadual yang dikeluarkan.
Skenario 2: Mengendalikan Jadual Multi-Page
Memperluaskan logik ke parse melalui pecahan halaman PDF / imej.
Conclusion
Aspose.OCR Invoice to Text for .NET membolehkan anda untuk mengekstrak item dan jadual baris invois terperinci - memungkinkan automatik penuh dari pemindaian/foto kepada data yang terstruktur dan boleh dijalankan.
Lihat kod ekstraksi yang lebih terstruktur dalam Aspose.OCR untuk .NET API Rujukan .