Currently I am using the PyPDF 2 as a dependency.
I have encountered some encrypted files and handled them as you normally would (in the following code):
PDF = PdfFileReader(file(pdf_filepath, 'rb'))
if PDF.isEncrypted:
PDF.decrypt("")
print PDF.getNumPages()
My filepath looks something like "~/blah/FDJKL492019 21490 ,LFS.pdf" PDF.decrypt("") returns 1, which means it was successful. But when it hits print PDF.getNumPages(), it still raises the error, "PyPDF2.utils.PdfReadError: File has not been decrypted".
How do I get rid of this error? I can open the PDF file just fine by double click (which default-opens with Adobe Reader).
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With