在pdfminer.six python中保留提取文本的布局

时间:2018-04-08 21:01:59

标签: python python-3.x pdf text pdfminer

我想提取此pdf的文字:https://github.com/pdfminer/pdfminer.six/files/1887670/Wochenkarte-KW-15-Neu.pdf

当我使用此代码提取文本时:

def convert_pdf_to_txt(path):
    resource_manager = PDFResourceManager()
    device = None
    try:
        with StringIO() as string_writer, open(path, 'rb') as pdf_file:
            device = TextConverter(resource_manager, string_writer, codec='utf-8', laparams=LAParams())
            interpreter = PDFPageInterpreter(resource_manager, device)

            for page in PDFPage.get_pages(pdf_file, maxpages=1):
                interpreter.process_page(page)

            pdf_text = string_writer.getvalue()
    finally:
        if device:
            device.close()
    return pdf_text

该文本不对应于pdf的文本布局。 目前的结果:

Montag 09.04.2018 
Menü 1 

Kl. Salat 


Menü 2 

Kl. Salat 

Seelachs-Spinat-Türmchen mit Spinat-
Masalla-Sauce und Reis 
Currywurst mit Pommes 

预期结果:

Montag 09.04.2018 
Menü 1 

Kl. Salat Seelachs-Spinat-Türmchen mit Spinat-Masalla-Sauce und Reis 

Menü 2 

Kl. Salat Currywurst mit Pommes 

我做错了什么或者我错过了其他什么?

1 个答案:

答案 0 :(得分:1)

关键是在LAParams中提供另一个linemargin:

LAParams(line_margin=0.1)

我的专栏现在看起来像这样:

device = TextConverter(resource_manager, string_writer, codec='utf-8', laparams=LAParams(line_margin=0.1))

Tim

的信用