Как извлечь текст из таблицы в файл PDF?
Я пытаюсь реализовать алгоритм, описанный в академической статье, которая у меня есть в формате PDF. Алгоритм включает в себя таблицу из 256 записей, которые я хочу скопировать в мою реализацию. Однако я не могу скопировать таблицу как текст, которым я могу манипулировать. Я могу только скопировать это как изображение.
Как я могу легко извлечь таблицу, не вводя ее?
6 ответов
Это дает это XML, я думаю.
Если мы путешествуем по сети, мы можем найти файлы PDF в кучах. Однажды технические детали удивительной пятимегапиксельной цифровой камеры, одна статистика о доходах предприятия за последние два года, и один раз блестящий криминальный роман сэра Артура Конан Дойла сохранен в файле PDF. Широкое использование этого формата файлов фокусируется на вопросе о том, как повторно использовать данные в таком файле. Многое уже сделано в этой области. Например, есть несколько инструментов, которые конвертируют PDF-файлы в другие форматы.
Моя работа сосредоточена только на извлечении табличной информации из PDF-файлов. Я искал инструменты, которые извлекают основную информацию из PDF-файлов. Я нашел инструмент с именем pdf2html, который также возвращает данные в формате XML. Для доступа к этому выводу XML я использовал архив JDOM.
Я разработал несколько эвристик для обнаружения и декомпозиции таблиц. Эти эвристики работают довольно хорошо на ясных таблицах (без охватывающих столбцов или строк) и довольно хорошо на сложных таблицах (с охватывающими строками или столбцами).
Формат PDF с момента его создания (более 20 лет назад) никогда не предназначался для размещения извлекаемых, осмысленно структурированных данных.
Его первоначальная цель состояла в том, чтобы быть надежным визуальным представлением текста, изображений и диаграмм в документе - своего рода цифровой бумаге (которая также будет надежно перенесена на реальную бумагу посредством печати). Только позже в его разработке были добавлены дополнительные функции, среди которых некоторые, которые должны помочь в извлечении данных снова (Google для Tagged PDF).
Некоторые примеры проблем, возникающих при извлечении данных из таблиц PDF, см. В этой статье:
Вопреки моей точке зрения "1". выше, теперь я говорю это: для удивительного семейства инструментов, которые становятся все лучше и лучше от недели к неделе для извлечения табличных данных из PDF-файлов (если они не отсканированные страницы), смотрите эти ссылки:
Итак: иди ищи Табулу. Если какой-либо инструмент может делать то, что вы хотите, в настоящее время (через 4 года после того, как был задан этот вопрос), Tabula, вероятно, среди лучших для этой работы!
PS: Tabula - это свободное и открытое программное обеспечение, написанное на Ruby.
Ваша проблема может быть в том, что он был вставлен в PDF как изображение оригинальным автором. Если это так (вы можете узнать это, посмотрев, будет ли другой текст в документе копироваться как текст), возможно, вам остается только скопировать его вручную (надеюсь, что вы можете коснуться шрифта) или использовать программное обеспечение OCR, поставляемое со сканерами.
Один из вариантов - сохранить документ (или просто страницу с нужной таблицей) в виде XML-файла. Я только что сделал это в Adobe Acrobrat Pro, сохранив его как "XML Spreadsheet 2003". Это сохранило табличный формат в результирующем XML-файле (для просмотра в Excel). Единственное "несовершенство" заключается в том, что каждая литеральная строка в таблице рассматривается как строка в файле Excel. Поэтому, если какой-либо текст разбивается на строки (например, длинные имена), он будет отображаться как две строки в Excel. Для небольшого стола это довольно незначительная уборка.
Кроме этого, кажется, что этот процесс может быть автоматизирован.
Несвободное приложение PDF2XL и бесплатный PDF Mechanic могут извлекать табличные данные в CSV и Excel, часто в зависимости от точного форматирования таблицы.