Како извући ставке линије рачуна и структуриране табеле
Екстракција линијских предмета и табела из рачуна је кључ за потпуну аутоматизацију налога плаћања, ревизије и анализе трошења.Аппосе.ОЦР Извод на текст за .НЕТ вам омогућава да поделите детаљне, мулти-роу, више колона података – чак и из скенираних или фотографисаних докумената.
Реал светски проблем
Рачуни садрже табеле производа/услуга – ручно их транскриптирање је времетрајно и погрешно.
Преглед решења
Користите ОЦР да бисте препознали површине табеле, парасирали сваку реду и колону и извозили у структуриране формати за ЕРП, БИ или даље анализе.
Принципи
- Visual Studio 2019 или касније
- .NET 6.0 или новији (или .Net Framework 4.6.2+)
- Aspose.OCR za .NET od NuGet
- Примерне слике или ПДФ-а са линијама / табелама
PM> Install-Package Aspose.OCR
Корак по корак спровођење
Корак 1: Припремите слику рачуна / ПДФ
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: Поделите препознатљив текст у табелне кругове / колоне
- Користите регекс или прилагођену логику да бисте раздвојили линије по редовима / колонама
// 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: Експорт линије / табела у ЦСВ
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));
}
}
}
Коришћење случајева и апликација
Анализа и АП аутоматизација
Екстракт објектирани трошкови за извештавање, предвиђање и одобрење.
Ревизија и ревизија рачуна
Аудит / одобрење струје са извозним, машински читавим детаљима.
Интеграција ЕРП / Финансијског система
Директно преузимање структурираних табела података у финансијску или ЕРП софтвер.
Заједнички изазови и решења
Проблем 1: Разноврсни формати стола
Решење: Тун регекс и парсинг логике за сваког добављача / шаблона.
Проблем 2: ОКР препознавање грешака у колонама
Решење: Користите хеуристику колоне, затражите скенирање високог квалитета или знаме за ручну ревизију.
Izazov 3: Izgubljeni ili izgubljeni stolpci
Решење: Нормализује, раздваја или брзо прегледа у недвосмисленим случајевима.
Размишљање о перформанси
- Батцх процесира више рачуна паралелно
- Log/flag parsing pitanja za ljudsku recenziju
Најбоља пракса
- Изградња регекс библиотеке за познате шаблоне
- Преглед излаза узорка за туне парсинг
- Безбедни оригинални / обрађени датотеке за ревизију
- Ажурирајте логику екстракције као промена добављача / шаблона
Напредни сценарио
Сценарио 1: Мапа линије Елементи на ЕРП / Базе података Директно
Користите ОРМ или АПИ позиве да притиснете извучене табелне податке.
Сценарио 2: Управљање мулти-страница табела
Проширите логику да прође кроз ПДФ / слике странице прекида.
Закључак
Aspose.OCR Invoice to Text for .NET омогућава извлачење детаљних елемената и табела линије фактурисања - омогућивајући потпуну аутоматизацију од скенирања / фотографије до структурираних, могућих података.
Види више структурираног екстракционог кода у Aspose.OCR за .NET API референце .