Как извлечь структурированные данные и таблицы из PDF в .NET

Как извлечь структурированные данные и таблицы из PDF в .NET

Экстракция таблиц и структурированных данных из PDF-файлов является общим заданием для аналитиков, бухгалтеров и всех, кто работает с отчетами или финансовыми отчетностями. Aspose.PDF.Plugin для .NET предлагает программатические варианты для обнаружения, парашюта и экспорта таблицы, таких как прямой текст, CSV или JSON.

Идентификация таблиц в PDF-тексте

  • Простый PDF: Таблицы с четкими клеточными границами (таб, пространство или линейные границы) легче всего извлечь.
  • Визуальная инспекция: Выводит сырой или чистый текст и проверяет последовательные шаблоны ряда/колонны.
  • Херистическая паразита: Используйте логику (например, регулярные выражения, делимтери) для идентификации вероятных рядов и колонн из извлеченного текста.

Пример: Экспорт таблиц в виде 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

Часто задаваемые вопросы

**Q: Можно ли автоматически обнаружить или обрабатывать сливленные клетки?**Ответ: Не надежно – смешанные/спугнутые клетки обычно требуют ручной коррекции или визуального обследования после экстракции.

**Q: является ли источник данных всегда на 100% точным?**А: Нет — результаты зависят от структуры таблицы, форматирования и PDF Всегда проверяйте извлеченные таблицы и, если это необходимо, чистите их с помощью персонализированных правил или скриптов.

**Q: Какой лучший режим для выделения стола?**Ответ: Начните с чистым режимом для структурированных таблиц. сырьевый режим может быть полезным для добычи данных или персонализированной хюристики.

Pro Tip: Для повторения экстракций, фини-тунь свою логику парсинга для каждого шаблона отчета CSV и JSON Для максимальной гибкости.

 Русский