วิธีการสกัดรายการสายบัญชีและตารางโครงสร้าง
การ extracting line items and tables from invoices is key for full automation of accounts payable, audits, and spend analytics. Aspose.OCR Invoice to Text for .NET allows you to parse detailed, multi-row, multiple-column data—even from scaned or photographed documents. การประเมินรายการและตารางจากรายงานเป็นสิ่งสําคัญสําหรับอัตโนมัติเต็มรูปแบบของบัญชีที่ชําระเงิน, การตรวจสอบและการวิเคราะห์ค่าใช้จ่าย.
ปัญหาโลกจริง
บัญชีมีตารางของผลิตภัณฑ์ / บริการ - การถ่ายโอนด้วยตนเองเหล่านี้ใช้เวลาและเป็นข้อผิดพลาด การอัตโนมัติเต็มรูปแบบต้องใช้การสกัดข้อมูลที่กําหนดไว้อย่างแข็งแกร่ง
ความคิดเห็นเกี่ยวกับโซลูชัน
ใช้ OCR เพื่อรับรู้ภูมิภาคตารางแยกแต่ละแถวและคอลัมน์และส่งออกไปยังรูปแบบที่โครงสร้างสําหรับ ERP, BI หรือวิเคราะห์เพิ่มเติม
ข้อกําหนด
- Visual Studio 2019 หรือภายหลัง
- .NET 6.0 หรือเร็วกว่า (หรือ .Net Framework 4.6.2+)
- Aspose.OCR สําหรับ .NET จาก NuGet
- ตัวอย่างวาดภาพหรือไฟล์ PDF กับรายการสาย / ตาราง
PM> Install-Package Aspose.OCR
การดําเนินการขั้นตอนขั้นตอน
ขั้นตอนที่ 1: การเตรียมภาพบัญชี / PDF
string invoiceFile = "invoice_with_items.pdf";
ขั้นตอนที่ 2: การยอมรับพื้นที่รายการตาราง / สาย
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;
ขั้นตอนที่ 3: คัดลอกข้อความที่ได้รับการยอมรับ into Table Rows/Columns
- ใช้ regex หรือโลโก้ที่กําหนดเองเพื่อแยกรายการเส้นผ่านศูนย์กลางโดยการกําหนดค่าลําดับ / ตาราง
// 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.
}
}
ขั้นตอน 4: การส่งออกรายการสาย/ตารางไปยัง CSV
using (var writer = new StreamWriter("invoice_lineitems.csv"))
{
writer.WriteLine("SKU,Description,Qty,UnitPrice,Total");
// Loop and write line items parsed above
}
ขั้นตอน 5: ตัวอย่างที่สมบูรณ์
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));
}
}
}
ใช้กรณีและแอปพลิเคชัน
การใช้ Analytics และอัตโนมัติ AP
สารสกัดที่กําหนดค่าใช้จ่ายสําหรับการรายงานการคาดการณ์และการอนุมัติ
การตรวจสอบและตรวจสอบบัญชี
การตรวจสอบ / การอนุมัติของเส้นผ่านศูนย์กลางพร้อมรายละเอียดที่สามารถส่งออกได้และอ่านได้ด้วยเครื่อง
การบูรณาการ ERP / ระบบทางการเงิน
ดาวน์โหลดข้อมูลตารางโครงสร้างโดยตรงไปยังซอฟต์แวร์ทางการเงินหรือ ERP
ความท้าทายและโซลูชั่นทั่วไป
ความท้าทาย 1: รูปแบบโต๊ะที่แตกต่างกัน
โซลูชัน: ลักษณะ reggex และ parsing สําหรับแต่ละซัพพลายเออร์ / template
ความท้าทาย 2: ความผิดพลาดในการรับรู้ OCR ในคอลัมน์
โซลูชัน: ใช้ heuristics คอลัมน์ขอการสแกนที่มีคุณภาพสูงหรือ flag สําหรับการตรวจสอบด้วยตนเอง
ความท้าทาย 3: คอลัมน์ที่สูญหายหรือหายไป
**โซลูชัน: ** ปกติการกระจายหรือตรวจสอบทันทีในกรณีที่สม่ําเสมอ
การพิจารณาประสิทธิภาพ
- บัตรกระบวนการหลายบัญชีใน parallel
- ปัญหา Log/Flag Parsing สําหรับวิจารณ์มนุษย์
แนวทางที่ดีที่สุด
- สร้างห้องสมุด regex สําหรับรูปแบบที่รู้จักกันดี
- รีวิวผลลัพธ์ตัวอย่างสําหรับ Tune Parsing
- การรักษาความปลอดภัยไฟล์เดิม / กระบวนการสําหรับการตรวจสอบ
- ปรับปรุงโลจิกการสกัดตามการเปลี่ยนแปลงผู้จัดจําหน่าย / ตัวอย่าง
การ์ตูนขั้นสูง
สภาพแวดล้อม 1: แผนที่เส้นรายการไปยัง ERP/ฐานข้อมูลโดยตรง
ใช้โทร ORM หรือ API เพื่อกดข้อมูลตารางที่สกัด
ฉาก 2: จัดการตารางหลายหน้า
เพิ่มความ logic ไปยัง parse ผ่าน PDF/image page break.
ข้อสรุป
Aspose.OCR Invoice to Text for .NET ช่วยให้สามารถ استخراجรายการและตารางเส้นคํานวณรายละเอียดโดยช่วยให้การอัตโนมัติเต็มรูปแบบจากสแกน / ภาพไปยังข้อมูลที่โครงสร้างและสามารถใช้งานได้
ดูโครงสร้างรหัสการสกัดมากขึ้นใน Aspose.OCR สําหรับการอ้างอิง API .NET .