API Quick Starts (Code Examples) > Encryption Service API Quick Starts > Quick Start: Encrypting a PDF document using the Java API

Quick Start: Encrypting a PDF document using the Java API
The following Java code example encrypts a PDF document named Loan.pdf with a password value of OpenPassword. The master password is PermissionPassword. The secured PDF document is saved as a PDF file named EncryptLoan.pdf. (See Encrypting PDF Documents with a Password.)
/*
 * This Java Quick Start uses the following JAR files
 * 1. adobe-encryption-client.jar
 * 2. adobe-livecycle-client.jar
 * 3. adobe-usermanager-client.jar
 * 4. adobe-utilities.jar
 * 5. jbossall-client.jar (use a different JAR file if LiveCycle ES is not deployed
 * on JBoss)
 * 
 *  These JAR files are located in the following path:
 * <install directory>/Adobe/LiveCycle8/LiveCycle_ES_SDK/client-libs
 * 
 * For complete details about the location of these JAR files, 
 * see "Including LiveCycle ES library files" in Programming 
 * with LiveCycle ES
 */
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import com.adobe.idp.Document;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
import com.adobe.livecycle.encryption.client.*;
 
public class PasswordEncryptPDF {
 
	public static void main(String[] args) {
		
		try{
		//Set connection properties required to invoke LiveCycle ES								
		Properties connectionProps = new Properties();
		connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT, "jnp://localhost:1099");
		connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_EJB_PROTOCOL);          
		connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
		connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
		connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
		
		//Create a ServiceClientFactory instance
		ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
 
		//Create an EncryptionServiceClient object
		EncryptionServiceClient encryptClient = new EncryptionServiceClient(myFactory); 
		
		//Specify the PDF document to encrypt with a password
		FileInputStream fileInputStream = new FileInputStream("C:\\Adobe\\Loan.pdf");	
		Document inDoc = new Document (fileInputStream); 
 
		//Create a PasswordEncryptionOptionSpec object that stores encryption run-time values
		PasswordEncryptionOptionSpec passSpec = new PasswordEncryptionOptionSpec();
		
		//Specify the PDF document resource to encrypt
		passSpec.setEncryptOption(PasswordEncryptionOption.ALL);
		
		//Specify the permission associated with the password
		List encrypPermissions = new ArrayList(); 
		encrypPermissions.add(PasswordEncryptionPermission.PASSWORD_EDIT_EXTRACT);
		encrypPermissions.add(PasswordEncryptionPermission.PASSWORD_EDIT_FORM_FILL);
		passSpec.setPermissionsRequested(encrypPermissions);
		
		//Specify the Acrobat version
		passSpec.setCompatability(PasswordEncryptionCompatability.ACRO_7);
		
		//Specify the password values
		passSpec.setDocumentOpenPassword("OpenPassword");
		passSpec.setPermissionPassword("PermissionPassword");
		
		//Encrypt the PDF document
		Document encryptDoc = encryptClient.encryptPDFUsingPassword(inDoc,passSpec); 
		
		//Save the password-encrypted PDF document
		File outFile = new File("C:\\Adobe\\EncryptLoan.pdf");
		encryptDoc.copyToFile (outFile);
 
		}catch (Exception e) {
			e.printStackTrace();
		}
	}
}

API Quick Starts (Code Examples) > Encryption Service API Quick Starts > Quick Start: Encrypting a PDF document using the Java API

Programming with LiveCycle ES (LiveDocs)
Adobe LiveCycle ES Update 1

 

Send me an e-mail when comments are added to this page | Comment Report

Current page: http://livedocs.adobe.com/livecycle/8.2/programLC/programmer/help/000051.html