我一直在尝试找出一种使用python3从受密码保护的pdf中获取页数的方法。到目前为止,我已经尝试了pypdf2和pdfminer2模块。
两者均失败,因为文件未解密。

#!/usr/bin/python3
from PyPDF2 import PdfFileReader
pdfFile = PdfFileReader(open("document.pdf", "rb"))
print(pdfFile.numPages)

此代码将产生错误:
PyPDF2.utils.PdfReadError: File has not been decrypted

有没有一种方法可以在不解密的情况下获取页数?

最佳答案

您可以使用 pdfrw

示例

a.pdf b.pdf 是相同的pdf。区别是 b.pdf 受密码保护的pdf a.pdf 是简单的pdf ,没有任何保护,页数均为30

>>> from pdfrw import PdfReader
>>> print len(PdfReader('b.pdf').pages)
30
>>> print len(PdfReader('a.pdf').pages)
30

对于安装,请使用以下命令
pip install pdfrw

有关详细信息 PDFRW

关于Python从受密码保护的pdf获取页面数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45808955/

10-08 20:33