PDF Decrypter is a standalone PHP library allowing quick and convenient decryption and permanently removing password from PDF files.
This library is currently in the beta phase. This means that it is undergoing testing, and some features may not be fully supported yet. Below is a list of limitations and considerations:
- Stream filters other than the FlateDecode filter are not yet supported.
- Predictor algorithms other than the PNG Up Algorithm are not yet supported.
- Hint tables for linearized files are not yet supported, so the file is no longer linearized after decryption.
- PHP version 8.1 or later
Install the latest version with:
composer require abcde1410/pdfdecrypter
Use Abcde1410\PDFDecrypter\PDFDecrypter;
This library may throw PDFDecrypterException
in certain situations. It is recommended to use it within a try-catch block to handle these exceptions gracefully.
- To set the content of the encrypted document from the file:
$decrypter = new PDFDecrypter('path/to/file.pdf');
OR
$decrypter = new PDFDecrypter();
$decrypter->openFile('path/to/file.pdf');
- If you would like to set the content of the encrypted document that has been previously loaded into memory, use the
setDocumentContent()
method:
$decrypter = new PDFDecrypter();
$decrypter->setDocumentContent($encryptedContent);
- Set encrypted document authentication password:
$decrypter->setPassword('document_password');
- To verify the correctness of the provided password, use the
verifyPassword()
method. You can omit this step if you are confident that the provided password is correct. The method returns true if the password is correct and false otherwise.
if ($decrypter->verifyPassword() === true) {
// password is correct
}
else {
// password is incorrect
}
- You can get, show or download the decrypted file.
To get decryption result as a plaintext use
get()
method:
$decryptedFile = $decrypter->get();
To show the decrypted file in the browser use show()
method:
$decrypter->show();
To download the decrypted file use download()
method:
$decrypter->download();
This library is under the MIT License.