pdfminer3k中PDFPage没有名为create_pages的方法
因为我想从 Python 2 升级到 3,所以我尝试在 Python 3.4 中使用 pdfmine.3kr。看起来他们对这个库做了很多修改。可是,他们的更新日志并没有详细说明这些变化,我在用 pdfminer3k 解析 PDF 文件时一直没有成功。例如:
他们把 PDFDocument 移到了 pdfparser 里(如果我拼写错了请见谅)。PDFPage 以前有一个叫 create_pages 的方法,现在没有了。我在 PDFPage 里看到的全是一些内部方法。有没有人能提供一个 pdfminer3k 的有效示例?看起来没有新的文档来说明这些变化。
2 个回答
3
也许你可以试试 pdfminer.six。它的描述是:
这是一个 PDFMiner 的分支,使用 six 让它可以在 Python 2 和 3 上都能用。
你可以通过 pip 安装它:
pip install pdfminer.six
在我的代码中,它的用法和 pdfminer 一样。
希望这能帮到你哦 :)
25
如果你想从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()