Quick Start (EJB mode): Importing XMP metadata using the Java API

The following code example imports XMP metadata and saves the new PDF file to disk. The PDF document is based on a PDF file named Loan.pdf. The XML document that contains the metadata to import into the PDF document is based on an XML file named LoanMetaData.xml. For information about this XML file, see Importing Metadata into PDF Documents.

/* 
    * This Java Quick Start uses the following JAR files 
    * 1. adobe-pdfutility-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 the LiveCycle server is not deployed 
    * on JBoss) 
    * 6. jacorb.jar (use a different JAR file if the LiveCycle server is not deployed on JBoss) 
    * 7. jnp-client.jar (use a different JAR file if the LiveCycle server is not deployed on JBoss) 
    *  
    *  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 
    *  
    * The adobe-utilities.jar file is located in the following path: 
    * <install directory>/sdk/client-libs/jboss 
    *  
    * The jbossall-client.jar file is located in the following path: 
    * <install directory>/jboss/client 
    *  
    * If you want to invoke a remote LiveCycle 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 LiveCycle 
    *  
    * For complete details about the location of the LiveCycle JAR files,  
    * see "Including LiveCycle Java library files" in Programming  
    * with LiveCycle 
    */ 
import com.adobe.livecycle.xmputility.*; 
import com.adobe.livecycle.xmputility.client.*; 
import java.util.*; 
import java.io.*; 
import com.adobe.idp.Document; 
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory; 
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties; 
 
public class ImportMetadata 
{ 
    public static void main(String[] args) 
    { 
        try 
        { 
            //Set connection properties required to invoke LiveCycle                                 
            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 factory = ServiceClientFactory.createInstance(connectionProps); 
 
            //Create a XMP Utility client 
            XMPUtilityServiceClient xmpUt = new XMPUtilityServiceClient(factory); 
 
            //Specify a PDF document into which XMP metadata is imported 
            FileInputStream filePDF = new FileInputStream("C:\\Adobe\Loan.pdf"); 
            Document inDoc = new Document(filePDF); 
 
            //Specify an XML file containing XMP metadata to import 
            FileInputStream fileXML = new FileInputStream("C:\\Adobe\LoanMetaData.xml"); 
            Document xmpDoc = new Document(fileXML ); 
 
            //Import the XMP metadata 
            Document outDoc = xmpUt.importXMP(inDoc, xmpDoc); 
 
            //Inspect the XMP metadata object (retrieve the document?s author in this case) 
            XMPUtilityMetadata myXmp = xmpUt.exportMetadata(outDoc); 
            String name = myXmp.getAuthor(); 
            System.out.println("The document?s author is " + name); 
 
            //Save the PDF document containing the new metadata 
            File pdfFile = new File("c:\\Adobe\LoanWithMetadata.pdf"); 
            outDoc.copyToFile(pdfFile); 
        } 
        catch (Exception e) 
        { 
            System.out.println("Error occurred: " + e.getMessage()); 
        } 
    } 
}

// Ethnio survey code removed