簡體   English   中英

PyPDF2 PdfReadError:無法讀取布爾對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM