You're viewing help content for version:

  • Note: Quick Starts located in Programming with AEM forms are based on the Forms Server operating system. However, if you are using another operating system, such as UNIX, replace Windows-specific paths with paths that are supported by the applicable operating system. Likewise, if you are using another J2EE application server, ensure that you specify valid connection properties. (See Setting connection properties.)

Quick Start (SOAP mode): Creating a PDF document using the Java API

The following Java code example creates a PDF document named Loan.pdf. This PDF document is based on a form design named Loan.xdp and an XML data file named Loan.xml. The Loan.pdf is written to the C:\Adobe folder located on the J2EE application server hosting AEM Forms, not the client computer. (See Creating PDF Documents.)

 /* 
     * This Java Quick Start uses the SOAP mode and contains the following JAR files 
     * in the class path: 
     * 1. adobe-output-client.jar 
     * 2. adobe-livecycle-client.jar 
     * 3. adobe-usermanager-client.jar 
    * 4. activation.jar (required for SOAP mode) 
    * 5. axis.jar (required for SOAP mode) 
    * 6. commons-codec-1.3.jar (required for SOAP mode) 
    * 7. commons-collections-3.2.jar  (required for SOAP mode) 
    * 8. commons-discovery.jar (required for SOAP mode) 
    * 9. commons-logging.jar (required for SOAP mode) 
    * 10. dom3-xml-apis-2.5.0.jar (required for SOAP mode) 
    * 11. jaxen-1.1-beta-9.jar (required for SOAP mode) 
    * 12. jaxrpc.jar (required for SOAP mode) 
    * 13. log4j.jar (required for SOAP mode) 
    * 14. mail.jar (required for SOAP mode) 
    * 15. saaj.jar (required for SOAP mode) 
    * 16. wsdl4j.jar (required for SOAP mode) 
    * 17. xalan.jar (required for SOAP mode) 
    * 18. xbean.jar (required for SOAP mode) 
    * 19. xercesImpl.jar (required for SOAP mode) 
     *  
     *  The JBoss files must be kept in the jboss\client folder. You can copy the client folder to  
     *  your local development environment and then include the 3 JBoss JAR files in your class path 
     *   
     *  These JAR files are located in the following path: 
     * <install directory>/sdk/client-libs/common 
     *  
     *  
     * <install directory>/jboss/bin/client 
     *  
     * If you want to invoke a remote forms server instance and there is a 
     * firewall between the client application and the server, then it is  
     * recommended that you use the SOAP mode. When using the SOAP mode,  
     * you have to include additional JAR files located in the following  
     * path 
     * <install directory>/sdk/client-libs/thirdparty 
     *  
     * For information about the SOAP  
     * mode and the additional JAR files that need to be included,  
     * see "Setting connection properties" in Programming  
     * with AEM Forms 
     *  
     * For complete details about the location of the AEM Forms JAR files,  
     * see "Including AEM Forms Java library files" in Programming  
     * with AEM Forms 
     */ 
 import com.adobe.livecycle.output.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 CreatePDFDocument { 
  
     public static void main(String[] args) { 
          
         try{ 
         //Set connection properties required to invoke AEM Forms                                 
         Properties connectionProps = new Properties(); 
         connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "http://[server]:[port]"); 
         connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_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 an OutputClient object 
         OutputClient outClient = new OutputClient(myFactory);  
                          
         //Reference form data                         
         FileInputStream fileInputStream = new FileInputStream("C:\\Adobe\Loan.xml");     
         Document inXMData = new Document (fileInputStream); 
                  
         //Set PDF run-time options     
         PDFOutputOptionsSpec outputOptions = new PDFOutputOptionsSpec(); 
         outputOptions.setFileURI("C:\\Adobe\Loan.pdf"); 
              
         //Set rendering run-time options 
         RenderOptionsSpec pdfOptions = new RenderOptionsSpec();  
         pdfOptions.setLinearizedPDF(true); 
         pdfOptions.setAcrobatVersion(AcrobatVersion.Acrobat_9); 
                          
         //Create a PDF document             
         OutputResult outputDocument = outClient.generatePDFOutput( 
             TransformationFormat.PDF, 
             "Loan.xdp", 
             "C:\\Adobe", 
             outputOptions, 
             pdfOptions, 
             inXMData 
         ); 
                  
         //Retrieve the results of the operation 
         Document metaData = outputDocument.getStatusDoc(); 
         File myFile = new File("C:\\Adobe\Output.xml"); 
         metaData.copyToFile(myFile); 
         } 
         catch (Exception ee) 
         { 
             ee.printStackTrace(); 
         } 
     } 
 } 
 

Quick Start (SOAP mode): Creating a PDF document based on an application XDP file using the Java API

The following Java code example creates a PDF document named Loan.pdf. This PDF document is based on a form design named Loan.xdp and an XML data file named Loan.xml. The XDP file is deployed as part of an AEM Forms application named Applications/FormsApplication. Notice that the URI path is repository:///Applications/FormsApplication/1.0/FormsFolder/. The Loan.pdf is written to the C:\Adobe folder located on the J2EE application server hosting AEM Forms, not the client computer. (See Creating PDF Documents.)

Note:

Before running this quick start, ensure that you create an AEM Forms application named Applications/FormsApplication. Create a folder within the application named FormsFolder and place the XDP file in the folder. For more information, see Generate a PDF document.

 /* 
     * This Java Quick Start uses the SOAP mode and contains the following JAR files 
     * in the class path: 
     * 1. adobe-output-client.jar 
     * 2. adobe-livecycle-client.jar 
     * 3. adobe-usermanager-client.jar 
    * 4. activation.jar (required for SOAP mode) 
    * 5. axis.jar (required for SOAP mode) 
    * 6. commons-codec-1.3.jar (required for SOAP mode) 
    * 7. commons-collections-3.2.jar  (required for SOAP mode) 
    * 8. commons-discovery.jar (required for SOAP mode) 
    * 9. commons-logging.jar (required for SOAP mode) 
    * 10. dom3-xml-apis-2.5.0.jar (required for SOAP mode) 
    * 11. jaxen-1.1-beta-9.jar (required for SOAP mode) 
    * 12. jaxrpc.jar (required for SOAP mode) 
    * 13. log4j.jar (required for SOAP mode) 
    * 14. mail.jar (required for SOAP mode) 
    * 15. saaj.jar (required for SOAP mode) 
    * 16. wsdl4j.jar (required for SOAP mode) 
    * 17. xalan.jar (required for SOAP mode) 
    * 18. xbean.jar (required for SOAP mode) 
    * 19. xercesImpl.jar (required for SOAP mode) 
     *  
     *  These JAR files are located in the following path: 
     * <install directory>/Adobe/adobe_experience_manager_forms/SDK/client-libs/common 
     *  
     * <install directory>/Adobe/adobe_experience_manager_forms/SDK/client-libs/jboss 
     *  
     * <install directory>/Adobe/adobe_experience_manager_forms/jboss/bin/client 
     *  
     * If you want to invoke a remote AEM Forms instance and there is a 
     * firewall between the client application and AEM Forms, then it is  
     * recommended that you use the SOAP mode. When using the SOAP mode,  
     * you have to include additional JAR files located in the following  
     * path 
     * <install directory>/Adobe/adobe_experience_manager_forms/SDK/client-libs/thirdparty 
     *  
     * For information about the SOAP  
     * mode and the additional JAR files that need to be included,  
     * see "Setting connection properties" in Programming  
     * with AEM Forms 
     *  
     * For complete details about the location of the AEM Forms JAR files,  
     * see "Including AEM Forms library files" in Programming  
     * with AEM Forms 
     */ 
 import com.adobe.livecycle.output.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 CreatePDFDocumentFromLCApp { 
  
     public static void main(String[] args) { 
          
         try{ 
         //Set connection properties required to invoke AEM Forms                                 
         Properties connectionProps = new Properties(); 
         connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "http://[server]:[port]"); 
         connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_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 an OutputClient object 
         OutputClient outClient = new OutputClient(myFactory);  
                          
         //Reference form data                         
         FileInputStream fileInputStream = new FileInputStream("C:\\Adobe\Loan.xml");     
         Document inXMData = new Document (fileInputStream); 
                  
         //Set PDF run-time options     
         PDFOutputOptionsSpec outputOptions = new PDFOutputOptionsSpec(); 
         outputOptions.setFileURI("C:\\Adobe\Loan.pdf"); 
              
         //Set rendering run-time options 
         RenderOptionsSpec pdfOptions = new RenderOptionsSpec();  
         pdfOptions.setLinearizedPDF(true); 
         pdfOptions.setAcrobatVersion(AcrobatVersion.Acrobat_9); 
                          
         //Create a PDF document -- reference an XDP file named Loan.xdp that is deployed as part of  
         //a AEM Forms application named Applications/FormsApplication. The XDP file is located  
         //in a folder named FormsFolder 
         OutputResult outputDocument = outClient.generatePDFOutput( 
             TransformationFormat.PDF, 
             "Loan.xdp", 
             "repository:///Applications/FormsApplication/1.0/FormsFolder/", 
             outputOptions, 
             pdfOptions, 
             inXMData 
         ); 
                  
         //Retrieve the results of the operation 
         Document metaData = outputDocument.getStatusDoc(); 
         File myFile = new File("C:\\Adobe\Output.xml"); 
         metaData.copyToFile(myFile); 
         } 
         catch (Exception ee) 
         { 
             ee.printStackTrace(); 
         } 
     } 
 } 
  
 

Quick Start (SOAP mode): Passing a document located in the Repository to the Output service using the Java API

The following Java code retrieves an XDP file from the Repository and passes it to the Output service within com.adobe.idp.Document instance. The XDP file is deployed as part of a AEM Forms application named Applications/FormsApplication. Notice that the URI path is repository:///Applications/FormsApplication/1.0/FormsFolder/.

Note:

The Repository API is used to retrieve the XDP file from this location. (See Reading Resources.)

Also notice the content root value repository:///Applications/FormsApplication/1.0/FormsFolder/ is passed to the OutputClient object’s generatePDFOutput2 method (the second parameter). This value is passed to the Output service to inform the Output service that form collateral, such as images, are stored in this location.

Note:

You can set the content root value in the same way when invoking the generatePrintedOutput2 method.

The Loan.pdf is written to the C:\Adobe folder located on the J2EE application server hosting AEM Forms. (See Passing Documents located in the Repository to the Output Service.)

Note:

Before running this quick start, ensure that you create a AEM Forms application named Applications/FormsApplication. Create a folder within the application named FormsFolder and place the XDP file in the folder.

 /* 
     * This Java Quick Start uses the SOAP mode and contains the following JAR files 
     * in the class path: 
     * 1. adobe-output-client.jar 
     * 2. adobe-repository-client.jar 
     * 3. adobe-livecycle-client.jar 
     * 4. adobe-usermanager-client.jar 
     *  
     *  The JBoss files must be kept in the jboss\client folder. You can copy the client folder to  
     *  your local development environment and then include the 3 JBoss JAR files in your class path 
     *   
     *  These JAR files are located in the following path: 
     * <install directory>/sdk/client-libs/common 
     *  
     *  
     * <install directory>/jboss/bin/client 
     *  
     * If you want to invoke a remote forms server instance and there is a 
     * firewall between the client application and the server, then it is  
     * recommended that you use the SOAP mode. When using the SOAP mode,  
     * you have to include additional JAR files located in the following  
     * path 
     * <install directory>/sdk/client-libs/thirdparty 
     *  
     * For information about the SOAP  
     * mode and the additional JAR files that need to be included,  
     * see "Setting connection properties" in Programming  
     * with AEM Forms 
     *  
     * For complete details about the location of the AEM Forms JAR files,  
     * see "Including AEM Forms Java library files" in Programming  
     * with AEM Forms 
     */ 
 import com.adobe.livecycle.output.client.*; 
 import com.adobe.repository.bindings.dsc.client.ResourceRepositoryClient; 
  
 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 CreatePDFFFromRepository { 
  
     public static void main(String[] args) { 
          
         try{ 
         //Set connection properties required to invoke AEM Forms                                 
         Properties connectionProps = new Properties(); 
         connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "http://[server]:[port]"); 
         connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_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 an OutputClient object 
         OutputClient outClient = new OutputClient(myFactory);  
                          
         //Reference form data                         
         FileInputStream fileInputStream = new FileInputStream("C:\\Adobe\Loan.xml");     
         Document inXMData = new Document (fileInputStream); 
                  
         //Set PDF run-time options     
         PDFOutputOptionsSpec outputOptions = new PDFOutputOptionsSpec(); 
         outputOptions.setFileURI("C:\\Adobe\Loan.pdf"); // this PDF form is saved on the server 
          
         //Get the form design from the AEM Forms Repository 
         Document formDesign =  GetFormDesign(myFactory); 
              
         //Set rendering run-time options 
         RenderOptionsSpec pdfOptions = new RenderOptionsSpec();  
         pdfOptions.setLinearizedPDF(true); 
         pdfOptions.setAcrobatVersion(AcrobatVersion.Acrobat_9); 
                          
         //Create a non-interactive PDF document             
         OutputResult outputDocument = outClient.generatePDFOutput2( 
             TransformationFormat.PDF, 
             "repository:///Applications/FormsApplication/1.0/FormsFolder/", 
             formDesign, 
             outputOptions, 
             pdfOptions, 
             inXMData 
         ); 
                  
         //Save the non-interactive PDF form as a PDF file on the client computer 
         Document pdfForm = outputDocument.getGeneratedDoc(); 
         File myFile = new File("C:\\Adobe\Loan.pdf"); 
         pdfForm.copyToFile(myFile); 
         } 
         catch (Exception ee) 
         { 
             ee.printStackTrace(); 
         } 
     } 
      
     // Retrieve the form design from the following Repository path: 
     // /Applications/FormsApplication/1.0/FormsFolder/Loan.xdp 
     private static Document GetFormDesign(ServiceClientFactory myFactory) 
     { 
     try{ 
              
         // Create a ResourceRepositoryClient object using the service client factory 
         ResourceRepositoryClient repositoryClient = new ResourceRepositoryClient(myFactory); 
  
         // Specify the path in the Repository to Loan.xdp 
         String resourceUri =  "/Applications/FormsApplication/1.0/FormsFolder/Loan.xdp"; 
  
         // Retrieve the XDP file  
         Document doc = repositoryClient.readResourceContent(resourceUri); 
      
            //Return the Document instance 
            return  doc; 
          } 
              
         catch(Exception e) 
         { 
             e.printStackTrace(); 
         } 
         return null;  
     } 
 } 
  
  
 

Quick Start (SOAP mode): Creating a PDF document using the Java API

The following Java code example creates a PDF document named Loan.pdf. This PDF document is based on a form design named Loan.xdp and an XML data file named Loan.xml. The Loan.pdf is written to the C:\Adobe folder located on the J2EE application server hosting AEM Forms, not the client computer. (See Creating PDF Documents.)

 /* 
     * This Java Quick Start uses the SOAP mode and contains the following JAR files 
     * in the class path: 
     * 1. adobe-output-client.jar 
     * 2. adobe-livecycle-client.jar 
     * 3. adobe-usermanager-client.jar 
    * 4. activation.jar (required for SOAP mode) 
    * 5. axis.jar (required for SOAP mode) 
    * 6. commons-codec-1.3.jar (required for SOAP mode) 
    * 7. commons-collections-3.2.jar  (required for SOAP mode) 
    * 8. commons-discovery.jar (required for SOAP mode) 
    * 9. commons-logging.jar (required for SOAP mode) 
    * 10. dom3-xml-apis-2.5.0.jar (required for SOAP mode) 
    * 11. jaxen-1.1-beta-9.jar (required for SOAP mode) 
    * 12. jaxrpc.jar (required for SOAP mode) 
    * 13. log4j.jar (required for SOAP mode) 
    * 14. mail.jar (required for SOAP mode) 
    * 15. saaj.jar (required for SOAP mode) 
    * 16. wsdl4j.jar (required for SOAP mode) 
    * 17. xalan.jar (required for SOAP mode) 
    * 18. xbean.jar (required for SOAP mode) 
    * 19. xercesImpl.jar (required for SOAP mode) 
     *  
     *  These JAR files are located in the following path: 
     * <install directory>/sdk/client-libs/common 
     *  
     *  
     * <install directory>/jboss/bin/client 
     *  
     * SOAP required JAR files are located in the following path: 
     * <install directory>/sdk/client-libs/thirdparty 
     *  
     * If you want to invoke a remote forms server instance and there is a 
     * firewall between the client application and the server, then it is  
     * recommended that you use the SOAP mode. When using the SOAP mode,  
     * you have to include these additional JAR files 
     *  
     * For information about the SOAP  
     * mode, see "Setting connection properties" in Programming  
     * with AEM Forms 
     */ 
 import com.adobe.livecycle.output.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 CreatePDFDocumentSOAP { 
  
     public static void main(String[] args) { 
          
     try{ 
         //Set connection properties required to invoke AEM Forms using SOAP mode                                 
         Properties connectionProps = new Properties(); 
         connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "http://[server]:[port]"); 
         connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_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 an OutputClient object 
         OutputClient outClient = new OutputClient(myFactory);  
                          
         //Reference form data                         
         FileInputStream fileInputStream = new FileInputStream("C:\\Adobe\Loan.xml");     
         Document inXMData = new Document (fileInputStream); 
                  
         //Set PDF run-time options     
         PDFOutputOptionsSpec outputOptions = new PDFOutputOptionsSpec(); 
         outputOptions.setFileURI("C:\\Adobe\Loan.pdf"); 
              
         //Set rendering run-time options 
         RenderOptionsSpec pdfOptions = new RenderOptionsSpec();  
         pdfOptions.setLinearizedPDF(true); 
         pdfOptions.setAcrobatVersion(AcrobatVersion.Acrobat_9); 
                          
         //Create a PDF document             
         OutputResult outputDocument = outClient.generatePDFOutput( 
             TransformationFormat.PDF, 
             "Loan.xdp", 
             "C:\\Adobe", 
             outputOptions, 
             pdfOptions, 
             inXMData 
         ); 
                  
         //Retrieve the results of the operation 
         Document metaData = outputDocument.getStatusDoc(); 
         File myFile = new File("C:\\Adobe\Output.xml"); 
         metaData.copyToFile(myFile); 
         } 
         catch (Exception ee) 
         { 
             ee.printStackTrace(); 
         } 
     } 
 }

Quick Start (SOAP mode): Creating a PDF/A document using the Java API

The following Java code example creates a PDF/A document named LoanArchive.pdf. This PDF document is based on a form design named Loan.xdp and an XML data file named Loan.xml. The LoanArchive.pdf is written to the C:\Adobe folder located on the J2EE application server hosting AEM Forms, not the client computer. (See Creating PDF/A Documents.)

 /* 
     * This Java Quick Start uses the SOAP mode and contains the following JAR files 
     * in the class path: 
     * 1. adobe-output-client.jar 
     * 2. adobe-livecycle-client.jar 
     * 3. adobe-usermanager-client.jar 
    * 4. activation.jar (required for SOAP mode) 
    * 5. axis.jar (required for SOAP mode) 
    * 6. commons-codec-1.3.jar (required for SOAP mode) 
    * 7. commons-collections-3.2.jar  (required for SOAP mode) 
    * 8. commons-discovery.jar (required for SOAP mode) 
    * 9. commons-logging.jar (required for SOAP mode) 
    * 10. dom3-xml-apis-2.5.0.jar (required for SOAP mode) 
    * 11. jaxen-1.1-beta-9.jar (required for SOAP mode) 
    * 12. jaxrpc.jar (required for SOAP mode) 
    * 13. log4j.jar (required for SOAP mode) 
    * 14. mail.jar (required for SOAP mode) 
    * 15. saaj.jar (required for SOAP mode) 
    * 16. wsdl4j.jar (required for SOAP mode) 
    * 17. xalan.jar (required for SOAP mode) 
    * 18. xbean.jar (required for SOAP mode) 
    * 19. xercesImpl.jar (required for SOAP mode) 
     *  
     *  The JBoss files must be kept in the jboss\client folder. You can copy the client folder to  
     *  your local development environment and then include the 3 JBoss JAR files in your class path 
     *   
     *  These JAR files are located in the following path: 
     * <install directory>/sdk/client-libs/common 
     *  
     *  
     * <install directory>/jboss/bin/client 
     *  
     * If you want to invoke a remote forms server instance and there is a 
     * firewall between the client application and the server, then it is  
     * recommended that you use the SOAP mode. When using the SOAP mode,  
     * you have to include additional JAR files located in the following  
     * path 
     * <install directory>/sdk/client-libs/thirdparty 
     *  
     * For information about the SOAP  
     * mode and the additional JAR files that need to be included,  
     * see "Setting connection properties" in Programming  
     * with AEM Forms 
     *  
     * For complete details about the location of the AEM Forms JAR files,  
     * see "Including AEM Forms Java library files" in Programming  
     * with AEM Forms 
     */ 
 import com.adobe.livecycle.output.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 CreatePDFADocument { 
  
     public static void main(String[] args) { 
          
     try{ 
         //Set connection properties required to invoke AEM Forms                                 
         Properties connectionProps = new Properties(); 
         connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "http://[server]:[port]"); 
         connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_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 an OutputClient object 
         OutputClient outClient = new OutputClient(myFactory);  
                          
         //Reference an XML data source to merge with the form design                                 
         FileInputStream fileInputStream = new FileInputStream("C:\\Adobe\Loan.xml");     
         Document inXMData = new Document (fileInputStream); 
              
         //Set PDF run-time options     
         PDFOutputOptionsSpec outputOptions = new PDFOutputOptionsSpec(); 
         outputOptions.setFileURI("C:\\Adobe\LoanArchive.pdf"); 
                      
         //Set rendering run-time options     
         RenderOptionsSpec pdfAOptions = new RenderOptionsSpec();  
         pdfAOptions.setPDFAConformance(PDFAConformance.A); 
         pdfAOptions.setPDFARevisionNumber(PDFARevisionNumber.Revision_1); 
          
                  
         //Create a PDF/A document             
         OutputResult outputDocument = outClient.generatePDFOutput( 
             TransformationFormat.PDFA, 
             "Loan.xdp", 
             "C:\\Adobe", 
             outputOptions, 
             pdfAOptions, 
             inXMData 
         ); 
          
         //Write the results of the operation to OutputLog.xml 
         Document resultData = outputDocument.getStatusDoc(); 
         File myFile = new File("C:\\Adobe\OutputLog.xml"); 
         resultData.copyToFile(myFile); 
          
         }catch (Exception ee) 
         { 
             ee.printStackTrace(); 
         } 
     } 
 } 
 

Quick Start (SOAP mode): Passing documents to the Output Service using the Java API

The following Java quick start retrieves the file Loan.xdp from Content Services. This XDP file is located in the space /Company Home/Form Designs. The XDP file is returned in a com.adobe.idp.Document instance. The com.adobe.idp.Document instance is passed to the Output service. The non-interactive form is saved as a PDF file named Loan.pdf on the client computer. Because the File URI option is set, the PDF file Loan.pdf is also saved on the J2EE application server hosting AEM Forms. (See Passing Documents located in Content Services ES2 to the Output Service.)

 /* 
     * This Java Quick Start uses the SOAP mode and contains the following JAR files 
     * in the class path: 
     * 1. adobe-output-client.jar 
     * 2. adobe-contentservices-client.jar 
     * 3. adobe-livecycle-client.jar 
     * 4. adobe-usermanager-client.jar 
     *  
     *  The JBoss files must be kept in the jboss\client folder. You can copy the client folder to  
     *  your local development environment and then include the 3 JBoss JAR files in your class path 
     *   
     *  These JAR files are located in the following path: 
     * <install directory>/sdk/client-libs/common 
     *  
     *  
     * <install directory>/jboss/bin/client 
     *  
     * If you want to invoke a remote forms server instance and there is a 
     * firewall between the client application and the server, then it is  
     * recommended that you use the SOAP mode. When using the SOAP mode,  
     * you have to include additional JAR files located in the following  
     * path 
     * <install directory>/sdk/client-libs/thirdparty 
     *  
     * For information about the SOAP  
     * mode and the additional JAR files that need to be included,  
     * see "Setting connection properties" in Programming  
     * with AEM Forms 
     *  
     * For complete details about the location of the AEM Forms JAR files,  
     * see "Including AEM Forms Java library files" in Programming  
     * with AEM Forms 
     */ 
 import com.adobe.livecycle.contentservices.client.CRCResult; 
 import com.adobe.livecycle.contentservices.client.impl.DocumentManagementServiceClientImpl; 
 import com.adobe.livecycle.output.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 CreatePDFFFromContentServices { 
  
     public static void main(String[] args) { 
          
         try{ 
         //Set connection properties required to invoke AEM Forms                                 
         Properties connectionProps = new Properties(); 
         connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "http://[server]:[port]"); 
         connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_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 an OutputClient object 
         OutputClient outClient = new OutputClient(myFactory);  
                          
         //Reference form data                         
         FileInputStream fileInputStream = new FileInputStream("C:\\Adobe\Loan.xml");     
         Document inXMData = new Document (fileInputStream); 
                  
         //Set PDF run-time options     
         PDFOutputOptionsSpec outputOptions = new PDFOutputOptionsSpec(); 
         outputOptions.setFileURI("C:\\Adobe\Loan.pdf"); // this PDF form is saved on the server 
          
         //Get the form design from Content Services 
         Document formDesign =  GetFormDesign(myFactory); 
              
         //Set rendering run-time options 
         RenderOptionsSpec pdfOptions = new RenderOptionsSpec();  
         pdfOptions.setLinearizedPDF(true); 
         pdfOptions.setAcrobatVersion(AcrobatVersion.Acrobat_9); 
                          
         //Create a non-interactive PDF document             
         OutputResult outputDocument = outClient.generatePDFOutput2( 
             TransformationFormat.PDF, 
             "C:\\Adobe", 
             formDesign, 
             outputOptions, 
             pdfOptions, 
             inXMData 
         ); 
                  
         //Save the non-interactive PDF form as a PDF file on the client computer 
         Document pdfForm = outputDocument.getGeneratedDoc(); 
         File myFile = new File("C:\\Adobe\Loan.pdf"); 
         pdfForm.copyToFile(myFile); 
         } 
         catch (Exception ee) 
         { 
             ee.printStackTrace(); 
         } 
     } 
      
     //Retrieve the form design from Content Services ES2 
     private static Document GetFormDesign(ServiceClientFactory myFactory) 
     { 
         try{ 
              
         //Create a DocumentManagementServiceClientImpl object 
         DocumentManagementServiceClientImpl    docManager = new DocumentManagementServiceClientImpl(myFactory);  
              
         //Specify the name of the store and the content to retrieve 
            String storeName = "SpacesStore"; 
            String nodeName  = "/Company Home/Form Designs/Loan.xdp"; 
  
            //Retrieve /Company Home/Form Designs/Loan.xdp 
            CRCResult content = docManager.retrieveContent( 
                      storeName, 
                      nodeName, 
                      ""); 
      
            //Return the Document instance 
             Document doc =content.getDocument();  
             return  doc; 
          } 
              
         catch(Exception e) 
         { 
             e.printStackTrace(); 
         } 
         return null;  
     } 
 } 
 

Quick Start (SOAP mode): Creating a PDF document based on fragments using the Java API

The following Java code example creates a PDF document that is based on a form design assembled by the Assembler service. The Assembler service assembles fragments located in multiple XDP files into a single form design. Application logic that invokes the Assembler service is located in a user-defined method named GetFormDesign. The non-interactive form is saved as a PDF file named Loan.pdf on the client computer. (See Creating PDF Documents Using Fragments.)

 /* 
     * This Java Quick Start uses the SOAP mode and contains the following JAR files 
     * in the class path: 
     * 1. adobe-output-client.jar 
     * 2. adobe-livecycle-client.jar 
     * 3. adobe-usermanager-client.jar 
    * 4. activation.jar (required for SOAP mode) 
    * 5. axis.jar (required for SOAP mode) 
    * 6. commons-codec-1.3.jar (required for SOAP mode) 
    * 7. commons-collections-3.2.jar  (required for SOAP mode) 
    * 8. commons-discovery.jar (required for SOAP mode) 
    * 9. commons-logging.jar (required for SOAP mode) 
    * 10. dom3-xml-apis-2.5.0.jar (required for SOAP mode) 
    * 11. jaxen-1.1-beta-9.jar (required for SOAP mode) 
    * 12. jaxrpc.jar (required for SOAP mode) 
    * 13. log4j.jar (required for SOAP mode) 
    * 14. mail.jar (required for SOAP mode) 
    * 15. saaj.jar (required for SOAP mode) 
    * 16. wsdl4j.jar (required for SOAP mode) 
    * 17. xalan.jar (required for SOAP mode) 
    * 18. xbean.jar (required for SOAP mode) 
    * 19. xercesImpl.jar (required for SOAP mode) 
     * 20. adobe-assembler-client.jar  
     *  
     *  The JBoss files must be kept in the jboss\client folder. You can copy the client folder to  
     *  your local development environment and then include the 3 JBoss JAR files in your class path 
     *   
     *  These JAR files are located in the following path: 
     * <install directory>/sdk/client-libs/common 
     *  
     *  
     * <install directory>/jboss/bin/client 
     *  
     * If you want to invoke a remote forms server instance and there is a 
     * firewall between the client application and the server, then it is  
     * recommended that you use the SOAP mode. When using the SOAP mode,  
     * you have to include additional JAR files located in the following  
     * path 
     * <install directory>/sdk/client-libs/thirdparty 
     *  
     * For information about the SOAP  
     * mode and the additional JAR files that need to be included,  
     * see "Setting connection properties" in Programming  
     * with AEM Forms 
     *  
     * For complete details about the location of the AEM Forms JAR files,  
     * see "Including AEM Forms Java library files" in Programming  
     * with AEM Forms 
     *  
     *  This is the DDX file is used to assemble multiple XDP documents: 
     * <?xml version="1.0" encoding="UTF-8"?> 
     * <DDX xmlns="http://ns.adobe.com/DDX/1.0/"> 
     *    <XDP result="tuc018result.xdp"> 
     *       <XDP source="tuc018_template_flowed.xdp"> 
     *          <XDPContent insertionPoint="ddx_fragment" source="tuc018_contact.xdp" fragment="subPatientContact" required="false"/> 
     *          <XDPContent insertionPoint="ddx_fragment" source="tuc018_patient.xdp" fragment="subPatientPhysical" required="false"/> 
     *          <XDPContent insertionPoint="ddx_fragment" source="tuc018_patient.xdp" fragment="subPatientHealth" required="false"/> 
     *       </XDP> 
     *    </XDP>         
     * </DDX> 
     */ 
 import com.adobe.livecycle.assembler.client.AssemblerOptionSpec; 
 import com.adobe.livecycle.assembler.client.AssemblerResult; 
 import com.adobe.livecycle.assembler.client.AssemblerServiceClient; 
 import com.adobe.livecycle.output.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 CreatePDFFromFragments { 
  
     public static void main(String[] args) { 
          
         try{ 
             //Set connection properties required to invoke AEM Forms                                 
             Properties connectionProps = new Properties(); 
             connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "http://[server]:[port]"); 
             connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_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 an OutputClient object 
             OutputClient outClient = new OutputClient(myFactory);  
                              
             //Reference form data                         
             FileInputStream fileInputStream = new FileInputStream("C:\\Adobe\Loan.xml");     
             Document inXMData = new Document (fileInputStream); 
                      
             //Set PDF run-time options     
             PDFOutputOptionsSpec outputOptions = new PDFOutputOptionsSpec(); 
             outputOptions.setFileURI("C:\\Adobe\Loan.pdf"); // this PDF form is saved on the server 
              
             //Get the form design from Assembler service 
             Document formDesign =  GetFormDesign(myFactory); 
                  
             //Set rendering run-time options 
             RenderOptionsSpec pdfOptions = new RenderOptionsSpec();  
             pdfOptions.setLinearizedPDF(true); 
             pdfOptions.setAcrobatVersion(AcrobatVersion.Acrobat_9); 
                              
             //Create a non-interactive PDF document             
             OutputResult outputDocument = outClient.generatePDFOutput2( 
                 TransformationFormat.PDF, 
                 "C:\\Adobe", 
                 formDesign, 
                 outputOptions, 
                 pdfOptions, 
                 inXMData 
             ); 
                      
             //Save the non-interactive PDF form as a PDF file on the client computer 
             Document pdfForm = outputDocument.getGeneratedDoc(); 
             File myFile = new File("C:\\Adobe\Loan.pdf"); 
             pdfForm.copyToFile(myFile); 
             } 
             catch (Exception ee) 
             { 
                 ee.printStackTrace(); 
             } 
         } 
          
         //Retrieve the form design from Assembler service 
         private static Document GetFormDesign(ServiceClientFactory myFactory) 
         { 
             try{ 
                                  
                 //Create an AssemblerServiceClient object 
                 AssemblerServiceClient assemblerClient = new AssemblerServiceClient(myFactory); 
  
                 //Create a FileInputStream object based on an existing DDX file  
                 FileInputStream myDDXFile = new FileInputStream("C:\\Adobe\fragmentDDX.xml");  
                  
                 //Create a Document object based on the DDX file 
                 Document myDDX = new Document(myDDXFile);  
  
                 //Create a Map object to store the input XDP files 
                 Map inputs = new HashMap(); 
                 FileInputStream inSource = new FileInputStream("C:\\Adobe\tuc018_template_flowed.xdp"); 
                 FileInputStream inFragment1 = new FileInputStream("C:\\Adobe\tuc018_contact.xdp"); 
                 FileInputStream inFragment2 = new FileInputStream("C:\\Adobe\tuc018_patient.xdp"); 
              
                 //Create a Document object  
                 Document myMapSource = new Document(inSource);  
  
                 //Create a Document object 
                 Document inFragment1Doc = new Document(inFragment1);  
                  
                 //Create a Document object  
                 Document inFragment2Doc = new Document(inFragment2);  
  
                 //Place all of the XDP files into the MAP 
                 inputs.put("tuc018_template_flowed.xdp",myMapSource);  
                 inputs.put("tuc018_contact.xdp",inFragment1Doc);  
                 inputs.put("tuc018_patient.xdp",inFragment2Doc);  
                  
  
                 //Create an AssemblerOptionsSpec object 
                 AssemblerOptionSpec assemblerSpec = new AssemblerOptionSpec(); 
                 assemblerSpec.setFailOnError(false);  
  
                 //Submit the job to Assembler service 
                 AssemblerResult jobResult = assemblerClient.invokeDDX(myDDX,inputs,assemblerSpec);    
                 java.util.Map allDocs = jobResult.getDocuments(); 
  
                 //Retrieve the result PDF document from the Map object 
                 Document outDoc = null; 
  
                 //Iterate through the map object to retrieve the result XDP document 
                 for (Iterator i = allDocs.entrySet().iterator(); i.hasNext();) { 
                     // Retrieve the Map object?s value 
                     Map.Entry e = (Map.Entry)i.next(); 
                      
                     //Get the key name as specified in the  
                     //DDX document  
                     String keyName = (String)e.getKey(); 
                     if (keyName.equalsIgnoreCase("tuc018result.xdp")) 
                     {  
                         Object o = e.getValue(); 
                         outDoc = (Document)o; 
      
                     } 
                 } 
                  
             return outDoc;      
             }catch (Exception e) { 
                 e.printStackTrace(); 
             } 
             return null;  
         } 
     } 
  
 

Quick Start (SOAP mode): Printing to a file using the Java API

The following Java code example prints an output stream to a PostScript file named MortgageForm.ps. (See Printing to Files.)

 /* 
     * This Java Quick Start uses the SOAP mode and contains the following JAR files 
     * in the class path: 
     * 1. adobe-output-client.jar 
     * 2. adobe-livecycle-client.jar 
     * 3. adobe-usermanager-client.jar 
    * 4. activation.jar (required for SOAP mode) 
    * 5. axis.jar (required for SOAP mode) 
    * 6. commons-codec-1.3.jar (required for SOAP mode) 
    * 7. commons-collections-3.2.jar  (required for SOAP mode) 
    * 8. commons-discovery.jar (required for SOAP mode) 
    * 9. commons-logging.jar (required for SOAP mode) 
    * 10. dom3-xml-apis-2.5.0.jar (required for SOAP mode) 
    * 11. jaxen-1.1-beta-9.jar (required for SOAP mode) 
    * 12. jaxrpc.jar (required for SOAP mode) 
    * 13. log4j.jar (required for SOAP mode) 
    * 14. mail.jar (required for SOAP mode) 
    * 15. saaj.jar (required for SOAP mode) 
    * 16. wsdl4j.jar (required for SOAP mode) 
    * 17. xalan.jar (required for SOAP mode) 
    * 18. xbean.jar (required for SOAP mode) 
    * 19. xercesImpl.jar (required for SOAP mode) 
     *  
     *  The JBoss files must be kept in the jboss\client folder. You can copy the client folder to  
     *  your local development environment and then include the 3 JBoss JAR files in your class path 
     *   
     *  These JAR files are located in the following path: 
     * <install directory>/sdk/client-libs/common 
     *  
     *  
     * <install directory>/jboss/bin/client 
     *  
     * If you want to invoke a remote forms server instance and there is a 
     * firewall between the client application and the server, then it is  
     * recommended that you use the SOAP mode. When using the SOAP mode,  
     * you have to include additional JAR files located in the following  
     * path 
     * <install directory>/sdk/client-libs/thirdparty 
     *  
     * For information about the SOAP  
     * mode and the additional JAR files that need to be included,  
     * see "Setting connection properties" in Programming  
     * with AEM Forms 
     *  
     * For complete details about the location of the AEM Forms JAR files,  
     * see "Including AEM Forms Java library files" in Programming  
     * with AEM Forms 
     */ 
 import com.adobe.livecycle.output.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 PrintToFile { 
  
     public static void main(String[] args) { 
          
         try{ 
             //Set connection properties required to invoke AEM Forms 
             Properties connectionProps = new Properties(); 
             connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "http://[server]:[port]"); 
             connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_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 an OutputClient object 
             OutputClient outClient = new OutputClient(myFactory);  
          
             //Reference XML data that represents form data 
             FileInputStream fileInputStream = new FileInputStream("C:\\Adobe\Loan.xml");  
             Document inputXML = new Document(fileInputStream); 
                                  
             //Set print run-time options required to print to a file 
             PrintedOutputOptionsSpec printOptions = new PrintedOutputOptionsSpec();  
             printOptions.setFileURI("C:\\Adobe\MortgageForm.ps"); 
              
             //Print the print stream to a PostScript file 
             OutputResult outputDocument = outClient.generatePrintedOutput( 
                     PrintFormat.PostScript, 
                     "Loan.xdp", 
                     "C:\\Adobe", 
                     null, 
                     printOptions, 
                     inputXML);  
          
             //Write the results of the operation to OutputLog.xml 
             Document resultData = outputDocument.getStatusDoc(); 
             File myFile = new File("C:\\Adobe\OutputLog.xml"); 
             resultData.copyToFile(myFile); 
             System.out.println("AEM Forms printed to MortgageForm.ps"); 
         } 
     catch (Exception ee) 
             { 
             ee.printStackTrace(); 
         } 
     } 
 } 
 

Quick Start (SOAP mode): Sending a print stream to a network printer using the Java API

The following Java code example sends a PostScript print stream to a network printer named \\Printer1\Printer. Two copies are sent to the printer. (See Sending Print Streams to Printers.)

 /* 
     * This Java Quick Start uses the SOAP mode and contains the following JAR files 
     * in the class path: 
     * 1. adobe-output-client.jar 
     * 2. adobe-livecycle-client.jar 
     * 3. adobe-usermanager-client.jar 
    * 4. activation.jar (required for SOAP mode) 
    * 5. axis.jar (required for SOAP mode) 
    * 6. commons-codec-1.3.jar (required for SOAP mode) 
    * 7. commons-collections-3.2.jar  (required for SOAP mode) 
    * 8. commons-discovery.jar (required for SOAP mode) 
    * 9. commons-logging.jar (required for SOAP mode) 
    * 10. dom3-xml-apis-2.5.0.jar (required for SOAP mode) 
    * 11. jaxen-1.1-beta-9.jar (required for SOAP mode) 
    * 12. jaxrpc.jar (required for SOAP mode) 
    * 13. log4j.jar (required for SOAP mode) 
    * 14. mail.jar (required for SOAP mode) 
    * 15. saaj.jar (required for SOAP mode) 
    * 16. wsdl4j.jar (required for SOAP mode) 
    * 17. xalan.jar (required for SOAP mode) 
    * 18. xbean.jar (required for SOAP mode) 
    * 19. xercesImpl.jar (required for SOAP mode) 
     *  
     *  The JBoss files must be kept in the jboss\client folder. You can copy the client folder to  
     *  your local development environment and then include the 3 JBoss JAR files in your class path 
     *   
     *  These JAR files are located in the following path: 
     * <install directory>/sdk/client-libs/common 
     *  
     *  
     * <install directory>/jboss/bin/client 
     *  
     * If you want to invoke a remote forms server instance and there is a 
     * firewall between the client application and the server, then it is  
     * recommended that you use the SOAP mode. When using the SOAP mode,  
     * you have to include additional JAR files located in the following  
     * path 
     * <install directory>/sdk/client-libs/thirdparty 
     *  
     * For information about the SOAP  
     * mode and the additional JAR files that need to be included,  
     * see "Setting connection properties" in Programming  
     * with AEM Forms 
     *  
     * For complete details about the location of the AEM Forms JAR files,  
     * see "Including AEM Forms Java library files" in Programming  
     * with AEM Forms 
     */ 
 import java.util.*; 
 import java.io.FileInputStream; 
 import com.adobe.idp.Document; 
 import com.adobe.idp.dsc.clientsdk.ServiceClientFactory; 
 import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties; 
 import com.adobe.livecycle.output.client.*; 
  
 public class SendToPrinter { 
  
     public static void main(String[] args) { 
          
         try{ 
             //Set connection properties required to invoke AEM Forms 
             Properties connectionProps = new Properties(); 
             connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "http://[server]:[port]"); 
             connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_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 an OutputClient object 
             OutputClient outClient = new OutputClient(myFactory);  
          
             //Reference XML data that represents form data 
             FileInputStream fileInputStream = new FileInputStream("C:\\Adobe\Loan.xml");  
             Document inputXML = new Document(fileInputStream); 
                                  
             //Set print run-time options required to print to a file 
             PrintedOutputOptionsSpec printOptions = new PrintedOutputOptionsSpec();  
              
             //Set the number of copies to print 
             printOptions.setCopies(2); 
              
             //Turn on the Staple option 
             printOptions.setStaple(Staple.on); 
                          
             //Create a PostScript output stream based on the form design named Loan.xdp and 
             //the data located in the XML file 
             OutputResult outputDocument = outClient.generatePrintedOutput( 
                     PrintFormat.PostScript, 
                     "Loan.xdp", 
                     "C:\\Adobe", 
                     "C:\\Adobe", 
                     printOptions, 
                     inputXML);  
                      
             //Get a Document object that stores the PostScript print stream 
             Document psPrintStream = outputDocument.getGeneratedDoc(); 
              
             //Specify the print server and the printer name 
             String printServer = "\\\ottprint"; 
             String printerName = "\\\ottprint\Balsom"; 
              
             //Send the PostScript print stream to the printer 
             outClient.sendToPrinter( 
                     psPrintStream, 
                     PrinterProtocol.SharedPrinter, 
                     printServer, 
                     printerName);  
             } 
         catch (Exception ee) 
             { 
             ee.printStackTrace(); 
             } 
     } 
 } 
 

Quick Start (SOAP mode): Creating multiple PDF files using the Java API

The following Java code creates multiple PDF files for each data record that is located in an XML data file named Loan_data_batch.xml. The files are written to the C:\Adobe directory. The PDF files are written to the C:\Adobe folder located on the J2EE application server hosting AEM Forms, not the client computer. (See Creating Multiple Output Files.)

 /* 
     * This Java Quick Start uses the SOAP mode and contains the following JAR files 
     * in the class path: 
     * 1. adobe-output-client.jar 
     * 2. adobe-livecycle-client.jar 
     * 3. adobe-usermanager-client.jar 
    * 4. activation.jar (required for SOAP mode) 
    * 5. axis.jar (required for SOAP mode) 
    * 6. commons-codec-1.3.jar (required for SOAP mode) 
    * 7. commons-collections-3.2.jar  (required for SOAP mode) 
    * 8. commons-discovery.jar (required for SOAP mode) 
    * 9. commons-logging.jar (required for SOAP mode) 
    * 10. dom3-xml-apis-2.5.0.jar (required for SOAP mode) 
    * 11. jaxen-1.1-beta-9.jar (required for SOAP mode) 
    * 12. jaxrpc.jar (required for SOAP mode) 
    * 13. log4j.jar (required for SOAP mode) 
    * 14. mail.jar (required for SOAP mode) 
    * 15. saaj.jar (required for SOAP mode) 
    * 16. wsdl4j.jar (required for SOAP mode) 
    * 17. xalan.jar (required for SOAP mode) 
    * 18. xbean.jar (required for SOAP mode) 
    * 19. xercesImpl.jar (required for SOAP mode) 
     *  
     *  The JBoss files must be kept in the jboss\client folder. You can copy the client folder to  
     *  your local development environment and then include the 3 JBoss JAR files in your class path 
     *   
     *  These JAR files are located in the following path: 
     * <install directory>/sdk/client-libs/common 
     *  
     *  
     * <install directory>/jboss/bin/client 
     *  
     * If you want to invoke a remote forms server instance and there is a 
     * firewall between the client application and the server, then it is  
     * recommended that you use the SOAP mode. When using the SOAP mode,  
     * you have to include additional JAR files located in the following  
     * path 
     * <install directory>/sdk/client-libs/thirdparty 
     *  
     * For information about the SOAP  
     * mode and the additional JAR files that need to be included,  
     * see "Setting connection properties" in Programming  
     * with AEM Forms 
     *  
     * For complete details about the location of the AEM Forms JAR files,  
     * see "Including AEM Forms Java library files" in Programming  
     * with AEM Forms 
     */ 
 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; 
 import com.adobe.livecycle.output.client.*; 
  
 public class CreateBatchFiles { 
  
     public static void main(String[] args) { 
          
         try{ 
             //Set connection properties required to invoke AEM Forms 
             Properties connectionProps = new Properties(); 
             connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "http://[server]:[port]"); 
             connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_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 an OutputClient object 
             OutputClient outClient = new OutputClient(myFactory);  
                          
             //Reference form data that contains multiple records                         
             FileInputStream fileInputStream = new FileInputStream("C:\\Adobe\Loan_data_batch.xml");     
             Document inXMData = new Document (fileInputStream); 
                  
             //Set run-time options to generate many PDF files     
             PDFOutputOptionsSpec outputOptions = new PDFOutputOptionsSpec(); 
             outputOptions.setFileURI("C:\\Adobe\Loan.pdf"); 
             outputOptions.setGenerateManyFiles(true); 
             outputOptions.setRecordName("LoanRecord"); 
              
                          
             //Set rendering run-time options 
             RenderOptionsSpec pdfOptions = new RenderOptionsSpec();  
             pdfOptions.setCacheEnabled(new Boolean(true)); 
              
          
             //Create multiple PDF files         
             OutputResult outputDocument = outClient.generatePDFOutput( 
                 TransformationFormat.PDF, 
                 "Loan.xdp", 
                 "C:\\Adobe", 
                 outputOptions, 
                 pdfOptions, 
                 inXMData 
                 ); 
                  
             //Retrieve the results of the operation 
             Document metaData = outputDocument.getStatusDoc(); 
             File myFile = new File("C:\\Adobe\Output.xml"); 
             metaData.copyToFile(myFile); 
             } 
             catch (Exception ee) 
             { 
                 ee.printStackTrace(); 
             } 
     } 
 } 
  
 

Quick Start (SOAP mode): Creating search rules using the Java API

The following Java code example creates two text patterns that the Output service searches for. The first text pattern is Mortgage. If found, the Output service uses the form design named Mortgage.xdp. The second text pattern is Automobile. If found, the Output service uses the form design named AutomobileLoan.xdp. If neither text pattern is located, the Output service uses the default form design named Loan.xdp. (See Creating Search Rules.)

 /* 
     * This Java Quick Start uses the SOAP mode and contains the following JAR files 
     * in the class path: 
     * 1. adobe-output-client.jar 
     * 2. adobe-livecycle-client.jar 
     * 3. adobe-usermanager-client.jar 
    * 4. activation.jar (required for SOAP mode) 
    * 5. axis.jar (required for SOAP mode) 
    * 6. commons-codec-1.3.jar (required for SOAP mode) 
    * 7. commons-collections-3.2.jar  (required for SOAP mode) 
    * 8. commons-discovery.jar (required for SOAP mode) 
    * 9. commons-logging.jar (required for SOAP mode) 
    * 10. dom3-xml-apis-2.5.0.jar (required for SOAP mode) 
    * 11. jaxen-1.1-beta-9.jar (required for SOAP mode) 
    * 12. jaxrpc.jar (required for SOAP mode) 
    * 13. log4j.jar (required for SOAP mode) 
    * 14. mail.jar (required for SOAP mode) 
    * 15. saaj.jar (required for SOAP mode) 
    * 16. wsdl4j.jar (required for SOAP mode) 
    * 17. xalan.jar (required for SOAP mode) 
    * 18. xbean.jar (required for SOAP mode) 
    * 19. xercesImpl.jar (required for SOAP mode) 
     *  
     *  The JBoss files must be kept in the jboss\client folder. You can copy the client folder to  
     *  your local development environment and then include the 3 JBoss JAR files in your class path 
     *   
     *  These JAR files are located in the following path: 
     * <install directory>/sdk/client-libs/common 
     *  
     *  
     * <install directory>/jboss/bin/client 
     *  
     * If you want to invoke a remote forms server instance and there is a 
     * firewall between the client application and the server, then it is  
     * recommended that you use the SOAP mode. When using the SOAP mode,  
     * you have to include additional JAR files located in the following  
     * path 
     * <install directory>/sdk/client-libs/thirdparty 
     *  
     * For information about the SOAP  
     * mode and the additional JAR files that need to be included,  
     * see "Setting connection properties" in Programming  
     * with AEM Forms 
     *  
     * For complete details about the location of the AEM Forms JAR files,  
     * see "Including AEM Forms Java library files" in Programming  
     * with AEM Forms 
     */ 
 import com.adobe.livecycle.output.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 CreateSearchRules { 
  
     public static void main(String[] args) { 
         try{ 
                                              
             //Set connection properties required to invoke AEM Forms 
             Properties connectionProps = new Properties(); 
             connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "http://[server]:[port]"); 
             connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_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 an OutputClient object 
             OutputClient outClient = new OutputClient(myFactory);  
                          
             //Reference form data 
             FileInputStream fileInputStream = new FileInputStream("C:\\Adobe\Loan.xml");     
             Document inXMData = new Document (fileInputStream); 
              
             //Define two text patterns 
             Rule mortageRule = new Rule(); 
             mortageRule.setPattern("Mortgage"); 
             mortageRule.setForm("Mortgage.xdp"); 
              
             Rule automobileRule = new Rule(); 
             automobileRule.setPattern("Automobile"); 
             automobileRule.setForm("AutomobileLoan.xdp"); 
              
             //Add the Rules to a List object 
             List<Rule> myList = new ArrayList<Rule>(); 
             myList.add(mortageRule); 
             myList.add(automobileRule); 
                                      
             //Define PDF run-time options which includes Search Rules     
             PDFOutputOptionsSpec outputOptions = new PDFOutputOptionsSpec(); 
             outputOptions.setFileURI("C:\\Adobe\Loan.pdf"); 
             outputOptions.setRules(myList); 
             outputOptions.setLookAhead(900);  
              
             //Define rendering run-time options 
             RenderOptionsSpec pdfOptions = new RenderOptionsSpec();  
             pdfOptions.setCacheEnabled(new Boolean(true)); 
                  
             //Create a PDF document based on multiple form designs         
             OutputResult outputDocument = outClient.generatePDFOutput( 
                 TransformationFormat.PDF, 
                 "Loan.xdp", 
                 "C:\\Adobe", 
                 outputOptions, 
                 pdfOptions, 
                 inXMData 
             ); 
          
             //Write the results of the operation to OutputLog.xml 
             Document resultData = outputDocument.getStatusDoc(); 
             File myFile = new File("C:\\Adobe\OutputLog.xml"); 
             resultData.copyToFile(myFile); 
             } 
         catch (Exception ee) 
                 { 
                     ee.printStackTrace(); 
                 } 
         } 
 } 
 

Quick Start (SOAP mode): Transforming a PDF document using the Java API

The following Java code example transforms an interactive PDF document named Loan.pdf to a non-interactive PDF document named NonInteractiveLoan.pdf. (See Flattening PDF Documents.)

 /* 
     * This Java Quick Start uses the SOAP mode and contains the following JAR files 
     * in the class path: 
     * 1. adobe-output-client.jar 
     * 2. adobe--client.jar 
     * 3. adobe-usermanager-client.jar 
    * 4. activation.jar (required for SOAP mode) 
    * 5. axis.jar (required for SOAP mode) 
    * 6. commons-codec-1.3.jar (required for SOAP mode) 
    * 7. commons-collections-3.2.jar  (required for SOAP mode) 
    * 8. commons-discovery.jar (required for SOAP mode) 
    * 9. commons-logging.jar (required for SOAP mode) 
    * 10. dom3-xml-apis-2.5.0.jar (required for SOAP mode) 
    * 11. jaxen-1.1-beta-9.jar (required for SOAP mode) 
    * 12. jaxrpc.jar (required for SOAP mode) 
    * 13. log4j.jar (required for SOAP mode) 
    * 14. mail.jar (required for SOAP mode) 
    * 15. saaj.jar (required for SOAP mode) 
    * 16. wsdl4j.jar (required for SOAP mode) 
    * 17. xalan.jar (required for SOAP mode) 
    * 18. xbean.jar (required for SOAP mode) 
    * 19. xercesImpl.jar (required for SOAP mode) 
     *  
     *  The JBoss files must be kept in the jboss\client folder. You can copy the client folder to  
     *  your local development environment and then include the 3 JBoss JAR files in your class path 
     *   
     *  These JAR files are located in the following path: 
     * <install directory>/sdk/client-libs/common 
     *  
     *  
     * <install directory>/jboss/bin/client 
     *  
     * If you want to invoke a remote forms server instance and there is a 
     * firewall between the client application and the server, then it is  
     * recommended that you use the SOAP mode. When using the SOAP mode,  
     * you have to include additional JAR files located in the following  
     * path 
     * <install directory>/sdk/client-libs/thirdparty 
     *  
     * For information about the SOAP  
     * mode and the additional JAR files that need to be included,  
     * see "Setting connection properties" in Programming  
     * with AEM Forms 
     *  
     * For complete details about the location of the AEM Forms JAR files,  
     * see "Including AEM Forms Java library files" in Programming  
     * with AEM Forms 
     */ 
 import com.adobe.livecycle.output.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 TransformPDF { 
  
     public static void main(String[] args) { 
          
     try{ 
         //Set connection properties required to invoke AEM Forms 
         Properties connectionProps = new Properties(); 
         connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "http://[server]:[port]"); 
         connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_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 an OutputClient object 
         OutputClient outClient = new OutputClient(myFactory);  
                          
         //Reference an interactive PDF document to transform                                 
         FileInputStream fileInputStream = new FileInputStream("C:\\Adobe\Loan.pdf");     
         Document inPDFDoc = new Document (fileInputStream); 
              
         //Transform the PDF document to a non-interactive PDF document 
         Document transformedDocument = outClient.transformPDF( 
                 inPDFDoc, 
                 TransformationFormat.PDF, 
                 null, 
                 null, 
                 null); 
          
         //Save the non-interactive PDF document 
         File myFile = new File("C:\\Adobe\NonInteractiveLoan.pdf"); 
         transformedDocument.copyToFile(myFile); 
          
     }catch (Exception ee) 
         { 
             ee.printStackTrace(); 
         } 
     } 
 } 
 

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License  Twitter™ and Facebook posts are not covered under the terms of Creative Commons.

Legal Notices   |   Online Privacy Policy