Разбор PDF с текстом и координатами - PullRequest
8 голосов
/ 21 июня 2011

В настоящее время я использую PDF Box для анализа PDF-файла и пытаюсь выяснить, как получить данные о тексте, такие как шрифт (полужирный, размер и т. Д.) И местоположение шрифта.

Есть предложения?

Ответы [ 4 ]

5 голосов
/ 21 июня 2011

Одна из лучших вещей для извлечения текста из PDF-файлов - это TET, набор инструментов для извлечения текста . TET является частью семейства продуктов PDFlib.com.

PDFlib.com - компания Томаса Мерца (автор "Библии PostScript и PDF" ).

Первое воплощение TET - библиотека . Это, вероятно, может делать все, что вы хотите, в том числе с позиционной информацией о каждом элементе текста на странице. Да, и он также может извлекать изображения. Он рекомбинирует + объединяет изображения, которые фрагментированы на части.

pdflib.com также предлагает еще одно воплощение этой технологии, плагин TET для Acrobat . Очевидно, что вам понадобится и Acrobat, чтобы использовать это.

И третье воплощение - PDFlib TET iFilter . Это автономный инструмент для пользовательских рабочих станций. И то, и другое бесплатно (как в пиве) для использования в личных некоммерческих целях.

Наконец, TET также поставляется с интерфейсом командной строки .

TET действительно мощный. Намного лучше, чем собственное извлечение текста Adobe. Он извлек текст для меня, где другие инструменты (в том числе Adobe) выплескивают только мусор.

Несколько месяцев назад я протестировал их автономный настольный инструмент, и то, что они говорят на их веб-странице, правда. У него очень хорошая командная строка. Некоторые из моих «проблемных» тестовых файлов PDF с инструментом обработаны к моему полному удовлетворению.

Это моя рекомендация для всех сложных и сложных требований к извлечению текста в PDF.

TET просто потрясающий. Он обнаруживает таблицы. Внутри таблиц он идентифицирует ячейки, охватывающие несколько столбцов. Он определяет строки таблицы и содержимое каждой ячейки таблицы отдельно. Он очень хорошо справляется с переносами слов: он удаляет дефисы и восстанавливает полные слова. Он поддерживает языки не ASCII (включая CJK, арабский и иврит). При встрече с лигатурами восстанавливаются оригинальные символы ...

Попробуйте.

4 голосов
/ 22 июня 2011

Изучив (трудно найти) документы PDFBox, я нашел этот маленький драгоценный камень .

Видимо, один из примеров показывает, как именно выполнить все, что вы просили.По сути, вы создаете подкласс PdfTextStripper и переопределяете метод processTextPosition.Там вы запрашиваете у TextPosition необходимую информацию.

Для дальнейшего использования вы можете найти javaDoc здесь: http://pdfbox.apache.org/apidocs/index.html

Редактировать2018-04-02 : исходная ссылка не работает, но пример можно найти в репозитории SVN здесь .

1 голос
/ 22 июня 2011

Функция GetPageText с опцией извлечения 3 или 4 в Quick PDF Library возвращает строку CSV для выбранной страницы, которая включает текст (отдельные слова или фрагмент текста) а также имя связанного шрифта, цвет текста, размер текста и координаты на странице.

Примечание: это коммерческая библиотека, и я работаю в компании, которая ее продает.

0 голосов
/ 09 февраля 2019

PDF-файлы можно анализировать с помощью tabula-py или tabula-java.

Я написал полное руководство по использованию tabula-py на этой статье . Вы также можете табулировать в веб-браузере, если у вас установлена ​​Java.

...