PyPDF2 PdfReadError: Could not read Boolean object
PyPDF2 PdfReadError: Could not read Boolean object
我在使用 PyPDF2 阅读某些 PDF 文件时遇到以下错误。由于这些文件的机密性,我不能分享它们,但我可以尝试提供有助于解决这个问题的信息。
堆栈跟踪 -
inputpdf = PdfFileReader(open(pdfpath, "rb"), strict=False)
File "/home/tata/.virtualenvs/obu/local/lib/python2.7/site-packages/PyPDF2/pdf.py", line 1084, in __init__
self.read(stream)
File "/home/tata/.virtualenvs/obu/local/lib/python2.7/site-packages/PyPDF2/pdf.py", line 1732, in read
num = readObject(stream, self)
File "/home/tata/.virtualenvs/obu/local/lib/python2.7/site-packages/PyPDF2/generic.py", line 74, in readObject
return BooleanObject.readFromStream(stream)
File "/home/tata/.virtualenvs/obu/local/lib/python2.7/site-packages/PyPDF2/generic.py", line 137, in readFromStream
raise utils.PdfReadError('Could not read Boolean object')
PdfReadError: Could not read Boolean object
异常似乎是由以下函数引发的,在 generic.py:
def readFromStream(stream):
word = stream.read(4)
if word == b_("true"):
return BooleanObject(True)
elif word == b_("fals"):
stream.read(1)
return BooleanObject(False)
else:
raise utils.PdfReadError('Could not read Boolean object')
打印变量 word 打印字符串 trai,但我不确定这个字符串代表什么。
由于 PyPDF2 项目似乎无人维护,有人可以帮我找出解决方案吗?
注意:请注意,这些 PDF 没有密码保护。
似乎所有 pdf 文件都以某种方式加密。使用 PyPDF2 的 github 存储库中本期 #53 中引用的解决方案,我使用以下命令生成另一个 pdf(原始 pdf 的解密版本)-
qpdf --password= --decrypt input.pdf output.pdf
然后阅读 output.pdf 对我有用。我不确定如何预先确定 pdf 是否已加密(或处于此特定状态)。不过这个方案暂时解决了问题。
我在使用 PyPDF2 阅读某些 PDF 文件时遇到以下错误。由于这些文件的机密性,我不能分享它们,但我可以尝试提供有助于解决这个问题的信息。
堆栈跟踪 -
inputpdf = PdfFileReader(open(pdfpath, "rb"), strict=False)
File "/home/tata/.virtualenvs/obu/local/lib/python2.7/site-packages/PyPDF2/pdf.py", line 1084, in __init__
self.read(stream)
File "/home/tata/.virtualenvs/obu/local/lib/python2.7/site-packages/PyPDF2/pdf.py", line 1732, in read
num = readObject(stream, self)
File "/home/tata/.virtualenvs/obu/local/lib/python2.7/site-packages/PyPDF2/generic.py", line 74, in readObject
return BooleanObject.readFromStream(stream)
File "/home/tata/.virtualenvs/obu/local/lib/python2.7/site-packages/PyPDF2/generic.py", line 137, in readFromStream
raise utils.PdfReadError('Could not read Boolean object')
PdfReadError: Could not read Boolean object
异常似乎是由以下函数引发的,在 generic.py:
def readFromStream(stream):
word = stream.read(4)
if word == b_("true"):
return BooleanObject(True)
elif word == b_("fals"):
stream.read(1)
return BooleanObject(False)
else:
raise utils.PdfReadError('Could not read Boolean object')
打印变量 word 打印字符串 trai,但我不确定这个字符串代表什么。
由于 PyPDF2 项目似乎无人维护,有人可以帮我找出解决方案吗?
注意:请注意,这些 PDF 没有密码保护。
似乎所有 pdf 文件都以某种方式加密。使用 PyPDF2 的 github 存储库中本期 #53 中引用的解决方案,我使用以下命令生成另一个 pdf(原始 pdf 的解密版本)-
qpdf --password= --decrypt input.pdf output.pdf
然后阅读 output.pdf 对我有用。我不确定如何预先确定 pdf 是否已加密(或处于此特定状态)。不过这个方案暂时解决了问题。