pdfminer中的pdfparser:PDFException:PDFDocument未初始化

时间:2019-02-08 17:00:47

标签: python-3.x exception pdfminer pdfparser

我不了解此错误。我想打开一个pdf文件并在页面上循环,但是我遇到了这个异常,无法通过谷歌搜索找到很多东西。

这是失败的例子

from pdfminer.pdfparser import PDFParser, PDFDocument
from os.path import basename, splitext

file = 'tmpfiles/tmpfile.pdf'
filename = splitext(basename(file))[0]
fp = open(file, 'rb')
parser = PDFParser(fp)
doc = PDFDocument(parser)
num_page = 0
text = ""
pages = doc.get_pages()
for p in pages:
    print("do whatever")

这是回溯

Traceback (most recent call last):
  File "test.py", line 20, in <module>
    for p in pages:
  File "/home/.../anaconda3/lib/python3.6/site-packages/pdfminer/pdfparser.py", line 544, in get_pages
    raise PDFException('PDFDocument is not initialized')
pdfminer.pdftypes.PDFException: PDFDocument is not initialized

我有python 3.6

在执行此操作之前,我将这样保存pdf文件,因为我的内容包含在以base64编码的字符串中

decoded = base64.b64decode(content_string)
with open(tmpfiles_path+'tmpfile.pdf', 'wb') as fout:
     fout.write(decoded)

是否可以通过某种保护方式保存文件?

1 个答案:

答案 0 :(得分:0)

问题是我使用的pdfminer版本。通过安装pdfminer.six并以这种方式更改代码

from pdfminer.pdfpage import PDFPage

file = 'tmpfiles/tmpfile.pdf'
fp = open(file, 'rb')
pages = PDFPage.get_pages(fp)
for p in pages:
    print("do whatever")

现在可以了。

相关问题