如何从python解码pdf加密文件

时间:2016-08-08 21:39:38

标签: python pdf encryption

我有一个PDF文件和相关密码。

我只想使用python将加密文件转换为清晰版本。

我发现了here一些python模块(pyPdf2,PDFMiner)  处理PDF文件,但它们都不适用于加密。

有人已经这样做了吗?

2 个答案:

答案 0 :(得分:0)

您还需要知道加密算法和密钥长度,以便能够建议哪个工具可以工作......并且根据答案,可能无法使用python库。

答案 1 :(得分:0)

现在pyPDF2支持加密,根据this answer,它可以像这样实现:

import os
import PyPDF2
from PyPDF2 import PdfFileReader

fp = open(filename)
pdfFile = PdfFileReader(fp)
password = "mypassword"
if pdfFile.isEncrypted:
    try:
        pdfFile.decrypt(password)
        print('File Decrypted (PyPDF2)')
    except:
        command = ("cp "+ filename +
            " temp.pdf; qpdf --password='' --decrypt temp.pdf " + filename
            + "; rm temp.pdf")
        os.system(command)
        print('File Decrypted (qpdf)')
        fp = open(filename)
        pdfFile = PdfFileReader(fp)
else:
    print('File Not Encrypted')

请注意,此代码默认情况下使用pyPDF2,并在出现问题时故障回复到qpdf