Abre un archivo pdf protegido en python

Escribí un documento PDF descifrado y encontré la contraseña del archivo PDF protegido. Quiero escribir un progtwig en Python que pueda mostrar ese archivo pdf en la pantalla sin contraseña. Utilizo la biblioteca PyPDF. Sé cómo abrir un archivo sin la contraseña, pero no puedo averiguar cuál está protegido. ¿Alguna idea? Gracias

filePath = raw_input() password = 'abc' if sys.platform.startswith('linux'): subprocess.call(["xdg-open", filePath]) 

El enfoque mostrado por KL84 básicamente funciona, pero el código no es correcto (escribe el archivo de salida para cada página). Una versión limpia está aquí:

https://gist.github.com/bzamecnik/1abb64affb21322256f1c4ebbb59a364

 # Decrypt password-protected PDF in Python. # # Requirements: # pip install PyPDF2 from PyPDF2 import PdfFileReader, PdfFileWriter def decrypt_pdf(input_path, output_path, password): with open(input_path, 'rb') as input_file, \ open(output_path, 'wb') as output_file: reader = PdfFileReader(input_file) reader.decrypt(password) writer = PdfFileWriter() for i in range(reader.getNumPages()): writer.addPage(reader.getPage(i)) writer.write(output_file) if __name__ == '__main__': # example usage: decrypt_pdf('encrypted.pdf', 'decrypted.pdf', 'secret_password') 

Tengo la respuesta para esta pregunta. Básicamente, la biblioteca PyPDF2 necesita instalarse y usarse para que esta idea funcione.

 #When you have the password = abc you have to call the function decrypt in PyPDF to decrypt the pdf file filePath = raw_input("Enter pdf file path: ") f = PdfFileReader(file(filePath, "rb")) output = PdfFileWriter() f.decrypt ('abc') # Copy the pages in the encrypted pdf to unencrypted pdf with name noPassPDF.pdf for pageNumber in range (0, f.getNumPages()): output.addPage(f.getPage(pageNumber)) # write "output" to noPassPDF.pdf outputStream = file("noPassPDF.pdf", "wb") output.write(outputStream) outputStream.close() #Open the file now if sys.platform.startswith('darwin'):#open in MAC OX subprocess.call(["open", "noPassPDF.pdf"])