python - 如何在 python 脚本和外部命令行中使用 pdfminer.six 的 pdf2txt.py?

标签 python python-3.x python-3.6 pdfminer

我知道如何在命令行中使用 pdfminer.six 的 pdf2txt.py 工具;但是,我有很多 PDF 文件要转换为 txt 文件,我不能在命令行中一个一个地转换。我还没有找到如何在实际的 python 脚本中使用这个工具。有什么想法吗?

最佳答案

好消息是您可以使用 PDFMiner 库重新创建您可能在命令行上使用 pdf2text 运行的任何属性/命令。请参阅下面我使用的基本示例:

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

def pdf_to_text(path):
    manager = PDFResourceManager()
    retstr = BytesIO()
    layout = LAParams(all_texts=True)
    device = TextConverter(manager, retstr, laparams=layout)
    filepath = open(path, 'rb')
    interpreter = PDFPageInterpreter(manager, device)

    for page in PDFPage.get_pages(filepath, check_extractable=True):
        interpreter.process_page(page)

    text = retstr.getvalue()

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


if __name__ == "__main__":
    text = pdf_to_text("yourfile.pdf")
    print(text)

如果您需要应用页码或密码,这些是 PDFPage.get_pages 中的可选参数。同样,如果您需要更改布局,例如全文本或页边距大小,LAParams 初始值设定项有可选属性

关于python - 如何在 python 脚本和外部命令行中使用 pdfminer.six 的 pdf2txt.py?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52416268/

相关文章:

jupyter-notebook - 第一次运行后,Jupyter notebook with python 3.6.1,使用 asyncio basic example 给出 : RuntimeError: Event loop is closed

python - 如何检查图像是否有文字?

python - 如何绘制点队列?

python - 如何从列表中定位 python 小部件标签?

python - 尝试检查列表列表中的值是否小于零时出现错误 'float' 对象不可迭代

python - 对 python3 中\b(退格)后面发生的事情感到困惑

python - 如何在 Python Pandas 中将日期转换为季度而不重复前 5 年的季度?

python - tkinter 中不可移动的文本

python - 使用 BeautifulSoup 解码 html 实体

python - 如何从 Path 切换到 os.path,反之亦然?