Python pdfminer.six удваивает или утраивает каждую строку в lt_obj.get_text () - PullRequest
0 голосов
/ 21 ноября 2018

Я испытываю странное поведение с pdfminer.six.Я пытаюсь разобрать абзацы из договорных документов.Во многих документах все работает нормально, но в некоторых других это происходит: я использую lt_obj.get_text (), чтобы извлечь текст абзаца и получить каждую строку удвоенной или утроенной.

Пример (анонимный): Пример PDF

И что я получаю из печати (lt_obj.get_text ()):

"Line1 Content
Line1 Content
Line2 Content
Line2 Content
Line3 Content
Line3 Content
Line4 Content
Line4 Content
Line5 Content
Line5 Content"

Я думал, что это как-то связано с рекурсивным получением объектов lt_objects, которыесодержат текст, но, как вы видите в моем коде, я отключил это и все еще получаю эти результаты.Однако это происходит не во всех моих документах, а иногда.Но если это произойдет, это произойдет для всего документа и всех его абзацев.

Мой код:

def parse_layout(layout, page_counter, doc):
        for lt_obj in layout:
        if isinstance(lt_obj, LTTextBox) or isinstance(lt_obj, LTTextLine):
            text = lt_obj.get_text()
            print(text)
        elif isinstance(lt_obj, LTFigure):
            pass
            #parse_layout(lt_obj, page_counter, doc)  # Recursive
...