python PDFminer анализирует только часть страницы

Я разбираю PDF-документ, используя модуль pdfminer python. Я просто хочу извлечь текст из этого документа.

Процесс идет отлично, но когда я извлекаю LTText* объектов, я понимаю, что не получаю весь текст внутри этого LTText* объекта. Кажется, что у него есть внутренний буфер или что-то в этом роде, из-за чего тексты вырезаются на каждой странице.

Мой код:

...
for lt_text_obj in lt_objs:
    if isinstance(lt_text_obj, LTTextBox) or isinstance(lt_text_obj, LTTextLine):
         if lt_text_obj._objs:
             for text_obj in lt_text_obj._objs:
                 if isinstance(text_obj, LTTextBox) or isinstance(text_obj,LTTextLine)]:
                     text_content.append(text_obj)
...

Переменная text_obj никогда не содержит весь текст, даже если этот текст на странице pdf-файла всегда отформатирован одинаково.

Я не думаю, что проблема в коде, потому что я также преобразовал pdf-файл в txt с помощью скрипта pdf2txt.py, и страницы полученного txt-файла также «вырезаны».

Похоже, проблема может быть в конфигурации pdfminer или в моем формате pdf-файла... Я совсем запутался.

Любые идеи?


person juankysmith    schedule 07.11.2013    source источник
comment
Вы когда-нибудь догадывались об этом? Или вы знаете зеркало для вашего «знаменитого примера»? Ссылка не работает.   -  person Yaegz    schedule 19.10.2015
comment
Пример был не мой, я отредактировал пост, убрав неработающую ссылку. Что я сделал, так это преобразовал pdf в txt и обработал его с помощью REGEX.   -  person juankysmith    schedule 20.10.2015


Ответы (2)


трудно сказать без входного pdf, я бы попробовал запустить:

pdf2txt.py -o output.xml path/to/your_input.pdf

этот инструмент является частью pdfminder и может быть очень полезен для отладки, попробуйте изучить результат xml, чтобы найти шаблон, который не извлекается правильно

person Guy Gavriely    schedule 18.11.2013

возможно ли вместо этого использовать PyPDF2? Я написал для себя небольшой "интерфейс" для того, чтобы постранично переносить из одного pdf-файла в другой (https://github.com/stianhotboi/pypdf2Interface/blob/master/pypdf2_interface.py). Я не видел проблем, подобных вашей, в моем случае (все вроде переносилось хорошо).

person stian    schedule 13.11.2013
comment
каким именно был ваш подход к pyPdf2? Я считаю, что весь мой текст включен (в виде страницы PDF), или проблема заключается в том, что вы переносите текстовые элементы из PDF? Должен признаться, что я этого не пробовал. - person stian; 16.11.2013
comment
Я получил эту ошибку при попытке использовать PyPDF2: github.com/colemana/PyPDF2/issues/5 и я не смог его решить :( - person juankysmith; 18.11.2013