pdf2txt - python 中的等价物

pdf2txt -A equivalent in python

我正在尝试从 pdf 中提取可利用的文本。但是像 this one 这样的一些 pdf 似乎有特定的布局,因为我的 python 脚本不能保留空格。

def convert_pdf_to_txt(path):
    rsrcmgr = PDFResourceManager()
    retstr = StringIO()
    codec = 'utf-8'
    laparams = LAParams()
    device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
    fp = open(path, 'rb')
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    password = ""
    caching = True
    pagenos=set()

    for page in PDFPage.get_pages(fp, pagenos, password=password, caching=caching, check_extractable=True):
        interpreter.process_page(page)

    text = retstr.getvalue()

    fp.close()
    device.close()
    retstr.close()
    return text

print(convert_pdf_to_txt("1002459.pdf"))

结果:

- 1 -

Combininglearningandreasoning:newchallengesforknowledgegraphsFrankvanHarmelen∗∗DptofComputerScience,VrijeUniversite...

所以我尝试在命令中使用 pdf2txt.py。同样的结果。但是我找到了 -A 选项,它给了我预期的结果:

- 1 -

Combining learning and reasoning: new challenges for

knowledge graphs

Frank van Harmelen∗

我可以用我的 python 脚本获得相同的结果吗?

可以;只需复制 -A 所做的。本质上,麻烦的 PDF 没有 "print" 空格,只有文字,布局分析推断应该有空格。 pdf2txt 通过设置 laparams.all_texts = True 来激活它。

好吧,你甚至可以在 Python 中制作 可以检查下面给出的代码 link 它是在 python

中制作的

https://github.com/baruchel/txt2pdf