6

由于我想从 python 2 迁移到 3,我尝试在 python 3.4 中使用 pdfmine.3kr。似乎他们已经编辑了所有内容。他们的更改日志没有反映他们所做的更改,但我在使用 pdfminer3k 解析 pdf 时没有成功。例如:

他们已将 PDFDocument 移至 pdfparser (对不起,如果我拼写错误)。PDFPage 曾经有 create_pages 方法,现在已经不存在了。我在 PDFPage 中看到的只是内部方法。有人有 pdfminer3k 的工作示例吗?似乎没有新的文档来反映任何更改。

4

2 回答 2

24

如果您有兴趣从 pdf 文件中读取文本,则以下代码使用 python 3.4 与 pdfminer3k 一起使用。

from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams, LTTextBox, LTTextLine

fp = open('file.pdf', 'rb')
parser = PDFParser(fp)
doc = PDFDocument()
parser.set_document(doc)
doc.set_parser(parser)
doc.initialize('')
rsrcmgr = PDFResourceManager()
laparams = LAParams()
device = PDFPageAggregator(rsrcmgr, laparams=laparams)
interpreter = PDFPageInterpreter(rsrcmgr, device)
# Process each page contained in the document.
for page in doc.get_pages():
    interpreter.process_page(page)
    layout = device.get_result()
    for lt_obj in layout:
        if isinstance(lt_obj, LTTextBox) or isinstance(lt_obj, LTTextLine):
            print(lt_obj.get_text())

fp.close()
于 2015-01-02T08:29:14.497 回答
3

也许,你可以使用 pdfminer.six。它的描述:

PDFMiner 的 fork 使用 6 个用于 Python 2+3 兼容性

使用pip安装后:</p>

pip install pdfminer.six

它的用法就像pdfminer一样,至少在我的代码中是这样。

希望这可以节省您的一天:)

于 2017-03-31T01:36:40.793 回答