API Quick Starts (Code Examples) > Barcoded Forms Service API Quick Starts > Quick Start: Decoding barcoded form data using the Java API

Quick Start: Decoding barcoded form data using the Java API
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 ES								
		Properties connectionProps = new Properties();
		connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT, "jnp://localhost:1099");
		connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_EJB_PROTOCOL);          
		connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
		connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
		connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
			
		//Create a ServiceClientFactory object
		ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
		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.Tab,
			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;	
   }
}
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.

API Quick Starts (Code Examples) > Barcoded Forms Service API Quick Starts > Quick Start: Decoding barcoded form data using the Java API

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