Avatar

Correct answer by
Level 10

TO programmatically apply uage rights to a PDF document, see the topic named Applying Usage Rights to PDF Documents located at the following URL:

http://livedocs.adobe.com/livecycle/8.2/programLC/programmer/help/000411.html

This will explain what to do and will lead you to the following Java code example:

/*
 * This Java Quick Start uses the following JAR files
 * 1. adobe-reader-extensions-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 com.adobe.livecycle.readerextensions.client.*;
import java.util.*;
import java.io.File;
import java.io.FileInputStream;
import com.adobe.idp.Document;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
 
public class ApplyUsageRights{
 
     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 object
            ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
            
            //Create a ReaderExtensionsServiceClient object
            ReaderExtensionsServiceClient reClient = new ReaderExtensionsServiceClient(myFactory); 
           
            //Retrieve the PDF document to which to apply usage rights
            FileInputStream fileInputStream = new FileInputStream("C:\\Adobe\\Loan.pdf"); 
            Document inputPDF = new Document(fileInputStream);
                      
            //Create a UsageRight object and specify specific usage rights
            UsageRights useRight = new UsageRights(); 
            useRight.setEnabledDynamicFormFields(true);
            useRight.setEnabledComments(true);
            useRight.setEnabledFormFillIn(true);
            useRight.setEnabledDigitalSignatures(true);
           
            //Create a ReaderExtensionsOptions object
            ReaderExtensionsOptionSpec reOptions = new ReaderExtensionsOptionSpec(); 
                      
            //Set the usage rights 
            reOptions.setUsageRights(useRight); 
            reOptions.setMessage("This is a Rights-Enabled PDF Document");
           
            //Apply usage rights to a PDF document
            Document rightsEnabledPDF = reClient.applyUsageRights(
                 inputPDF,
                 "RE2",
               null,
               reOptions); 
           
            //Create a new PDF file that represents the rights-enabled PDF document
            File resultFile = new File("C:\\Adobe\\Critique5.pdf"); 
            rightsEnabledPDF.copyToFile(resultFile);
                               
          }catch (Exception e) {
                e.printStackTrace();
          }     
     }
}

View solution in original post