我正在寻找有关如何使用 PDFMiner 和 Python 从 PDF 文件中提取文本的文档或示例。

看起来 PDFMiner 更新了他们的 API,我发现的所有相关示例都包含过时的代码(类和方法已更改)。我发现可以更轻松地从 PDF 文件中提取文本的库使用旧的 PDFMiner 语法,因此我不确定如何执行此操作。

事实上,我只是在查看源代码,看看我是否能弄清楚。

最佳答案

这是使用当前版本的 PDFMiner(2016 年 9 月)从 PDF 文件中提取文本的工作示例

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from io import StringIO

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 = ""
    maxpages = 0
    caching = True
    pagenos=set()

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

    text = retstr.getvalue()

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

PDFMiner 的结构最近发生了变化,因此这应该适用于从 PDF 文件中提取文本。

编辑 :截至 2018 年 6 月 7 日仍在工作。在 Python 3.x 版中验证

编辑:该解决方案适用于 2019 年 10 月 3 日的 Python 3.7。我使用了 2018 年 11 月发布的 Python 库 pdfminer.six

关于python - 在python中使用PDFMiner从PDF文件中提取文本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26494211/

10-12 21:10