The following Java code decodes form data that is located in a PDF form that is saved as Loan.pdf. The decoded data is saved as an XML file named extractedData.xml. This code example converts a org.w3c.dom.Document object into a com.adobe.idp.Document object. (See Decoding Barcoded Form Data.)/** This Java Quick Start uses the following JAR files* 1. adobe-barcodedforms-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)* 6. xercesImpl.jar (located in <install directory>/Adobe/LiveCycle8/LiveCycle_ES_SDK/client-libs\thirdparty)** 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.*;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 DecodeFormData {public static void main(String[] args) {try{//Set connection properties required to invoke LiveCycle ESProperties 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 objectServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);BarcodedFormsServiceClient barClient = new BarcodedFormsServiceClient(myFactory);//Specify a PDF document to convert to a XDP fileFileInputStream 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 dataorg.w3c.dom.Document decodeXML = barClient.decode(inDoc,myTrue,myFalse,myFalse,myFalse,myFalse,myFalse,myFalse,myFalse,CharSet.UTF_8);//Convert the decoded data to XDP dataList extractedData = barClient.extractToXML(decodeXML,Delimiter.Tab,Delimiter.Tab,XMLFormat.XDP);//Create an Iterator object and iterate through//the List objectIterator iter = extractedData.iterator();int i = 0 ;while (iter.hasNext()) {//Get the org.w3c.dom.Document object in each elementorg.w3c.dom.Document myDom = (org.w3c.dom.Document)iter.next();//Convert the org.w3c.dom.Document object to a//com.adobe.idp.Document objectcom.adobe.idp.Document myDocument = convertDOM(decodeXML);//Save the XML data to extractedData.xmlFile 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 objectpublic 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 objectTransformerFactory transFact = TransformerFactory.newInstance();Transformer transForm = transFact.newTransformer();//Create a Java ByteArrayOutputStream objectByteArrayOutputStream myOutStream = new ByteArrayOutputStream();//Create a Java Source objectSource myInput = new DOMSource(doc);//Create a Java Result objectResult myOutput = new StreamResult(myOutStream);//Populate the Java ByteArrayOutputStream objecttransForm.transform(myInput,myOutput);//Get the size of the ByteArrayOutputStream bufferint myByteSize = myOutStream.size();//Allocate myByteSize to the byte arraymybytes = new byte[myByteSize];//Copy the content to the byte arraymybytes = myOutStream.toByteArray();com.adobe.idp.Document myDoc = new com.adobe.idp.Document(mybytes);myDocument = myDoc ;}catch(Exception ee){ee.printStackTrace();}return myDocument;}}When using both an org.w3c.dom.Document object and a com.adobe.idp.Document object in the same application logic, it is good practice to fully qualify both objects.
| 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/000032.html