PDF Generation Template Editor
Open-source visual PDF generation engine with customizable templates and developer-friendly APIs.
Open-source visual PDF generation engine with customizable templates and developer-friendly APIs.
PDF Permissions are employed to ensure the security of PDF documents, offering encryption, document permissions, decryption, and password removal features. This ensures users have secure control and effective management over the document.
Encrypt
Encrypt function consists of two parts: User Password and Owner Password.
The User Password is utilized to open the document, ensuring that only authorized users can access its content. When a user password is set, it typically restricts certain document permissions such as modification, copying, or printing. On the other hand, the Owner Password not only opens the document but also unlocks all restricted permissions, allowing users to modify, copy, or print the document. The dual-password system aims to provide a more flexible and secure approach to document access and management.
ComPDFKit offers a variety of encryption algorithms and permission settings. Depending on your requirements, you can use the appropriate algorithm and configure custom permissions to safeguard your document.
The steps to encrypt are as follows:
This sample shows how to encrypt a document:
// Open document from file path.
CPDFDocument document = new CPDFDocument();
document.open(pdfPath);
// Set user password.
document.setUserPassword(user_password);
// Set owner password.
document.setOwnerPassword(owner_password);
// Set permission info.
CPDFDocumentPermissionInfo info = document.getPermissionsInfo();
info.setAllowsPrinting(false);
info.setAllowsCopying(true);
document.setPermissionsInfo(info);
// Save document.
document.save(CPDFDocument.PDFDocumentSaveType.PDFDocumentSaveNoIncremental);PDF Permissions
In the PDF specification, there is support for configuring various permissions for a document. By configuring these permissions, it is possible to restrict users to perform only the expected actions.
The PDF specification defines the following permissions:
The steps to view document permissions are as follows:
This example shows how to view document permissions:
// Open document from file path.
CPDFDocument document = new CPDFDocument();
document.open(pdfPath);
// get permission info.
CPDFDocumentPermissionInfo info = document.getPermissionsInfo();
System.out.println("Allows Printing:" + info.isAllowsPrinting());
System.out.println("Allows Copying:" + info.isAllowsCopying());Decrypt
Accessing a password-protected PDF document requires entering the password. Different levels of passwords provide varying levels of permission.
The steps for decryption are as follows:
This example shows how to decrypt a document:
// Open document from file path.
CPDFDocument document = new CPDFDocument();
CPDFDocument.PDFDocumentError error = document.open(pdfPath);
if (error == CPDFDocument.PDFDocumentError.PDFDocumentErrorPassword) {
// Password required.
document.open(pdfFath, password);
}Remove passwords
Removing passwords means deleting the owner passwords and user passwords from a document and saving it as a new document, which will no longer require a password to open and will have all permissions available by default.
The steps to remove passwords are as follows:
This example shows how to remove passwords:
// Open document from file path.
CPDFDocument document = new CPDFDocument();
document.open(pdfPath, password);
// Remove password.
try {
document.save(CPDFDocument.PDFDocumentSaveType.PDFDocumentSaveRemoveSecurity);
} catch (CPDFDocumentException e) {
e.printStackTrace();
}