Как да извлечем структурирани данни и таблици от PDF в .NET
Извличането на таблици и структурирани данни от PDFs е обща задача за анализатори, счетоводители и всеки, който работи с доклади или финансови отчети. Aspose.PDF.Plugin за .NET предлага програмни опции за откриване, паразиране и експортиране на табели като плосък текст, CSV или JSON.
Идентифициране на таблици в PDF текст
- Прост PDF: Таблиците с ясни клетъчни граници (таб, пространство или линии пределители) са най-лесни за извличане.
- Визуална инспекция: Извлечете суров или чист текст и проверявайте за последователни чертежи / колони.
- Heuristic Parsing: Използвайте логика (например, редовни изрази, делимитери) за идентифициране на вероятни редове и колони от извлечения текст.
Пример: Износ на таблици като CSV
using Aspose.Pdf.Plugins;
using System.IO;
string input = @"C:\Docs\financial-report.pdf";
var extractor = new TextExtractor();
var options = new TextExtractorOptions(TextExtractorOptions.TextFormattingMode.Pure);
options.AddInput(new FileDataSource(input));
string extracted = extractor.Process(options).ResultCollection[0].ToString();
// Simple parsing: Assume rows separated by '\n', columns by tabs or spaces
var rows = extracted.Split('\n');
using (var writer = new StreamWriter(@"C:\Docs\extracted-table.csv"))
{
foreach (var row in rows)
{
var columns = row.Split(new[] {'\t', ' '}, StringSplitOptions.RemoveEmptyEntries);
writer.WriteLine(string.Join(",", columns));
}
}Пример: Износ на таблици като JSON
using System.Text.Json;
var table = rows
.Where(r => r.Trim().Length > 0)
.Select(r => r.Split(new[] {'\t', ' '}, StringSplitOptions.RemoveEmptyEntries))
.ToList();
File.WriteAllText(@"C:\Docs\extracted-table.json", JsonSerializer.Serialize(table));Ограничения и напреднали съвети
- Мергирани/спандирани клетки: Повечето програмирани екстракции не могат надеждно да откриват смесени или мулти-роу клетките; ръчен преглед или персонализирана логика може да се изисква.
- Сложните таблици: Таблиците с изображения, графики или нередовни оформления изискват напреднали парсинг или визуален инструмент за екстракция на таблицата.
- Прецизност: Извличането е най-добре с прости, добре структурирани таблици; винаги преразглеждане на резултатите и настройване на логиката на паразита за вашите данни.
Използване на случаите
- Финансови анализи и одити (екстрактни ледгери, таблици за разходи)
- Данни за проучване и обратна връзка (максимални таблици за отговори)
- Миграция на данни от PDF до бази данни или Excel
Често задавани въпроси
**П: Може ли споделени клетки да бъдат открити или обработвани автоматично?**A: Не е надеждно - смесени / разпръснати клетки обикновено изискват ръчна корекция или визуален преглед след екстракция.
**Q: Дали извличането на данни винаги е 100% точно?**A: Не – резултатите зависят от структурата на таблицата, форматирането и ПДФ Винаги преглед на извлечени таблици и, ако е необходимо, почистване с помощта на персонализирани правила или скрипти.
**Q: Кой е най-добрият режим за маса екстракция?**A: Започнете с режим Pure за структурирани таблици. режим Raw може да бъде полезен за извличане на данни или персонализирана хюристика.
Про Съвет: За повтарящи се екстракции, фини логиката на парсинг за всеки шаблон на доклад КСВ и JSON За максимална гъвкавост.