Як витягти структуровані дані та таблиці з 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% точний?**А: Ні — результати залежать від структури столу, форматування, і ПДФ Завжди переглянути витягнуті таблиці і, якщо це необхідно, очистити за допомогою пристосованих правил або скриптів.
**Q: Який найкращий режим для видобутку столу?**Відповідь: Почніть з чистого режиму для структурованих таблиць. сировий режим може бути корисним для видобутку даних або пристосованої гідрології.
Про поради: Для повторення екстракцій, вдосконалюйте логіку парашуту для кожного шаблону звіту CSV і JSON За максимальну гнучкість.