[英]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')
打印可變字會打印字符串trai ,但是我不確定該字符串代表什么。
由於PyPDF2項目似乎沒有維護,有人可以幫助我找到解決方案嗎?
注意:請注意,這些PDF不受密碼保護。
似乎所有pdf都以某種方式進行了加密。 使用PyPDF2的github存儲庫中第53期中引用的解決方案,我使用以下命令來生成另一個pdf(原始pdf的解密版本)-
qpdf --password= --decrypt input.pdf output.pdf
然后閱讀output.pdf對我有用。 我不確定如何確定pdf是否已加密(或處於此特定狀態)。 但是此解決方案可以暫時解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.