Foxit PDF SDK for Android

How to Encrypt PDF files with Foxit PDF SDK for Android

Foxit PDF SDK provides a range of encryption and decryption functions to meet different levels of document security protection. Users can use regular password encryption and certificate-driven encryption, or use their own security handler for custom security implementation.

Example:

How to encrypt a PDF file with password

import com.foxit.sdk.PDFException;
import com.foxit.sdk.PDFViewCtrl;
import com.foxit.sdk.common.Constants;
import com.foxit.sdk.pdf.PDFDoc;
import com.foxit.sdk.pdf.SecurityHandler;
import com.foxit.sdk.pdf.StdEncryptData;
import com.foxit.sdk.pdf.StdSecurityHandler;
...
// Encrypt the source pdf document with specified owner password and user password, the encrypted PDF will be saved to the path specified by parameter savePath.
public boolean encryPDF(PDFDoc pdfDoc, byte[] ownerPassword, byte[] userPassword, String savePth) {
 if (pdfDoc == null || (ownerPassword == null && userPassword == null) || savePth == null)
 return false;
 // The encryption setting data. Whether to encrypt meta data:true, User permission: modify,assemble,fill form. Cipher algorithm:AES 128.
 StdEncryptData encryptData = new StdEncryptData(true,
 PDFDoc.e_PermModify | PDFDoc.e_PermAssemble | PDFDoc.e_PermFillForm,
 SecurityHandler.e_CipherAES, 16);
 StdSecurityHandler securityHandler = new StdSecurityHandler();
 try {
 if (!securityHandler.initialize(encryptData, userPassword, ownerPassword)) return false;
 pdfDoc.setSecurityHandler(securityHandler);
 if (!pdfDoc.saveAs(savePth, PDFDoc.e_SaveFlagNormal)) return false;
 return true;
 } catch (PDFException e) {
 e.printStackTrace();
 }
 return false;
}

Updated on May 29, 2019

Was this article helpful?
Thanks for your feedback. If you have a comment on how to improve the article, you can write it here: