BarcodedForms服務Java API快速入門(SOAP)

Java API快速入門(SOAP)適用於BarcodedForms服務:

快速入門(SOAP模式):使用Java API解碼條形碼表單資料

AEM Forms操作可以使用AEM Forms強類型API執行,連接模式應設定為SOAP。

注意

「與AEM Forms進行寫程式」中的「快速入門」基於部署在JBoss Application Server和Microsoft Windows作業系統上的Forms伺服器。 但是,如果您使用其他作業系統(例如UNIX),請以適用作業系統支援的路徑取代Windows特定路徑。 同樣地,如果您使用其他J2EE應用程式伺服器,請確定您指定有效的連線屬性。 請參閱設定連接屬性

快速入門(SOAP模式):使用Java API解碼條形碼表單資料

下列Java程式碼會解碼位於PDF表單中的表單資料,並儲存為Loan.pdf。 解碼的資料會儲存為名為extractedData.xml的XML檔案。 此代碼示例將org.w3c.dom.Document對象轉換為com.adobe.idp.Document對象。 (請參閱解碼條形碼表單資料)。

 /* 
     * This Java Quick Start uses the SOAP mode and contains the following JAR files 
     * in the class path: 
     * 1. adobe-barcodedforms-client.jar 
     * 2. adobe-livecycle-client.jar 
     * 3. adobe-usermanager-client.jar 
     * 4. adobe-utilities.jar 
     * 5. jboss-client.jar (use a different JAR file if the forms server is not deployed 
     * on JBoss) 
     * 6. activation.jar (required for SOAP mode) 
     * 7. axis.jar (required for SOAP mode) 
     * 8. commons-codec-1.3.jar (required for SOAP mode) 
     * 9.  commons-collections-3.1.jar  (required for SOAP mode) 
     * 10. commons-discovery.jar (required for SOAP mode) 
     * 11. commons-logging.jar (required for SOAP mode) 
     * 12. dom3-xml-apis-2.5.0.jar (required for SOAP mode) 
     * 13. jaxen-1.1-beta-9.jar (required for SOAP mode) 
     * 14. jaxrpc.jar (required for SOAP mode) 
     * 15. log4j.jar (required for SOAP mode) 
     * 16. mail.jar (required for SOAP mode) 
     * 17. saaj.jar (required for SOAP mode) 
     * 18. wsdl4j.jar (required for SOAP mode) 
     * 19. xalan.jar (required for SOAP mode) 
     * 20. xbean.jar (required for SOAP mode) 
     * 21. xercesImpl.jar (required for SOAP mode) 
     * 
     * 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 jboss-client.jar file is located in the following path: 
     * <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 java.io.*; 
 import java.util.Iterator; 
 import java.util.List; 
 import java.util.Properties; 
 import javax.xml.transform.*; 
 import javax.xml.transform.dom.DOMSource; 
 import javax.xml.transform.stream.StreamResult; 
 import com.adobe.livecycle.barcodedforms.CharSet; 
 import com.adobe.livecycle.barcodedforms.Delimiter ; 
 import com.adobe.livecycle.barcodedforms.XMLFormat ;  
 import com.adobe.idp.Document; 
 import com.adobe.idp.dsc.clientsdk.ServiceClientFactory; 
 import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties; 
 import com.adobe.livecycle.barcodedforms.client.*; 
  
 public class DecodeFormDataSOAP { 
  
     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, "https://[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); 
         BarcodedFormsServiceClient barClient = new BarcodedFormsServiceClient(myFactory); 
                          
         //Specify a PDF document to convert to a XDP file 
         FileInputStream fileInputStream = new FileInputStream("C:\\Adobe\LoanBarForms.pdf");     
         Document inDoc = new Document (fileInputStream); 
          
         java.lang.Boolean myFalse = new java.lang.Boolean(false); 
         java.lang.Boolean myTrue = new java.lang.Boolean(true); 
          
         //Decode barcoded form data 
         org.w3c.dom.Document decodeXML = barClient.decode( 
             inDoc, 
             myTrue, 
             myFalse, 
             myFalse, 
             myFalse, 
             myFalse, 
             myFalse, 
             myFalse, 
             myFalse, 
             CharSet.UTF_8); 
                                                  
         //Convert the decoded data to XDP data 
         List extractedData = barClient.extractToXML( 
             decodeXML,  
             Delimiter.Carriage_Return, 
             Delimiter.Tab, 
             XMLFormat.XDP); 
                  
         //Create an Iterator object and iterate through  
         //the List object 
         Iterator iter = extractedData.iterator();  
         int i = 0 ;  
              
         while (iter.hasNext()) {  
              
             //Get the org.w3c.dom.Document object in each element 
             org.w3c.dom.Document myDom = (org.w3c.dom.Document)iter.next();  
                  
             //Convert the org.w3c.dom.Document object to a  
             //com.adobe.idp.Document object 
             com.adobe.idp.Document myDocument = convertDOM(decodeXML); 
              
             //Save the XML data to extractedData.xml 
             File myFile = new File("C:\\Adobe\extractedData"+i+".xml"); 
              
             myDocument.copyToFile(myFile); 
             i++;  
             }     
         } 
     catch(Exception e) 
         { 
             e.printStackTrace(); 
         } 
     } 
  
  
     //This user-defined method converts an org.w3c.dom.Document to a  
     //com.adobe.idp.Document object 
     public static com.adobe.idp.Document convertDOM(org.w3c.dom.Document doc) 
         { 
              
             byte[] mybytes = null ; 
         com.adobe.idp.Document myDocument = null;  
         try 
             { 
  
             //Create a Java Transformer object 
          TransformerFactory transFact = TransformerFactory.newInstance(); 
          Transformer transForm = transFact.newTransformer(); 
      
          //Create a Java ByteArrayOutputStream object 
          ByteArrayOutputStream myOutStream = new ByteArrayOutputStream(); 
  
         //Create a Java Source object 
          Source myInput = new DOMSource(doc); 
  
         //Create a Java Result object 
          Result myOutput = new StreamResult(myOutStream); 
      
         //Populate the Java ByteArrayOutputStream object 
          transForm.transform(myInput,myOutput); 
  
         //Get the size of the ByteArrayOutputStream buffer 
          int myByteSize = myOutStream.size(); 
  
         //Allocate myByteSize to the byte array 
         mybytes = new byte[myByteSize]; 
  
         //Copy the content to the byte array 
         mybytes = myOutStream.toByteArray();  
         com.adobe.idp.Document myDoc = new com.adobe.idp.Document(mybytes); 
      
          myDocument = myDoc ;  
          } 
              
         catch(Exception ee) 
         { 
             ee.printStackTrace(); 
         } 
              
     return myDocument;     
       } 
 }
注意

在同一應用程式邏輯中同時使用org.w3c.dom.Document物件和com.adobe.idp.Document物件時,最好能完整限定這兩個物件。

本頁內容

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now