Как извлечь структурированные данные и таблицы из 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 Для максимальной гибкости.