PyPDF 2 Decrypt Not Working PyPDF 2 Decrypt Not Working python python

PyPDF 2 Decrypt Not Working


This error may come about due to 128-bit AES encryption on the pdf, see Query - is there a way to bypass security restrictions on a pdf?

One workaround is to decrypt all isEncrypted pdfs with "qpdf"

qpdf --password='' --decrypt input.pdf output.pdf

Even if your PDF does not appear password protected, it may still be encrypted with no password. The above snippet assumes this is the case.


The following code could solve this problem:

import osimport PyPDF2from PyPDF2 import PdfFileReaderfp = open(filename)pdfFile = PdfFileReader(fp)if pdfFile.isEncrypted:    try:        pdfFile.decrypt('')        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')


To Answer My Own Question:If you have ANY spaces in your file name, then PyPDF 2 decrypt function will ultimately fail despite returning a success code. Try to stick to underscores when naming your PDFs before you run them through PyPDF2.

For example,

Rather than "FDJKL492019 21490 ,LFS.pdf" do something like "FDJKL492019_21490_,LFS.pdf".