https://www.fda.gov/downloads/AboutFDA/ReportsManualsForms/Forms/UCM074728.pdf
我正在尝试使用PyPDF2或Pdfminer读取此pdf,但是它说文件尚未在Pypdf2和pdfminer中解密,它说它可以解压缩该pdf。有人让我知道如何在python3 windows环境中这样做。我无法使用poppler,因为我无法在此窗口中安装poppler。
答案 0 :(得分:2)
这是受限制的PDF文件。在大多数情况下,您可以使用带有空字符串的PyPDF2解密不会提示您输入密码的文件:
from PyPDF2 import PdfFileReader
reader = PdfFileReader('sample.pdf')
reader.decrypt('')
不幸的是,您的文件或128-bit AES
加密级别的任何其他加密级别不支持PyPDF2 decrypt()
方法将返回NotImplementedError
<。 / p>
作为一种简单的解决方法,您可以将此文件保存为Adobe Reader中的新文件或类似文件,新文件应该适用于您的代码。
此外,您可以使用this GitHub issue中讨论的qpdf
以编程方式执行此操作:
import os, shutil, tempdir
from subprocess import check_call
try:
tempdir = tempfile.mkdtemp(dir=os.path.dirname(filename))
temp_out = os.path.join(tempdir, 'qpdf_out.pdf')
check_call(['qpdf', "--password=", '--decrypt', filename, temp_out])
shutil.move(temp_out, filename)
print 'File Decrypted'
finally:
shutil.rmtree(tempdir)