首页 > 解决方案 > 如何使用 Python 从 PDF 文件中读取简单文本?

问题描述

需要解析 PDF 文件以便仅提取文本的第一行,并寻找不同的 Python 包来完成这项工作,但没有任何运气。

尝试过:

通常我发现安装的 Python 包运行得非常好,但是将 PDF 解析为文本似乎是一个丛林,无数的工具也表明了这一点。

关于如何在 Python 中将 PDF 文件简单解析为文本的任何建议?

添加了 PyPDF2 示例

PyPDF2 的一个例子是:

import PyPDF2
pdfFileObj = open('file.pdf', 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
pageObj_0 = pdfReader.getPage(0)
print(pageObj_0.extractText())

它将垃圾返回为:

$%$%&%&$'('~!)"*+#

标签: pythonpython-3.xpdftext

解决方案


基于 pdfminer,我能够将pdf2txt.py脚本(由 pdfminer 提供)中的基本必要性提取到一个函数中:

import io

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

def pdf_to_text(path):
    with open(path, 'rb') as fp:
        rsrcmgr = PDFResourceManager()
        outfp = io.StringIO()
        laparams = LAParams()
        device = TextConverter(rsrcmgr, outfp, laparams=laparams)
        interpreter = PDFPageInterpreter(rsrcmgr, device)
        for page in PDFPage.get_pages(fp):
            interpreter.process_page(page)
    text = outfp.getvalue()
    return text

推荐阅读