Когда я хочу извлечь текст из PDF-файла, я подаю его на pdftohtml
(часть Poppler ), используя параметр вывода -xml
. Это создает XML-файл, который я анализирую, используя XML :: Twig (или любой другой анализатор XML, который вам нравится, кроме XML :: Simple).
Формат XML довольно прост. Вы получаете элемент <page>
для каждой страницы в PDF, который содержит элементы <fontspec>
, описывающие используемые шрифты, и элемент <text>
для каждой строки текста. Элементы <text>
могут содержать теги <b>
и <i>
для текста, выделенного жирным шрифтом и курсивом (поэтому XML :: Simple не может его правильно проанализировать).
Вам необходимо использовать атрибуты top
и left
тегов <text>
, чтобы получить их в правильном порядке, поскольку они не обязательно выводятся в порядке сверху вниз. Система координат имеет 0,0 в верхнем левом углу страницы с положительным направлением вниз и вправо. Размеры указаны в точках PostScript (72 точки на дюйм).