The following code example handles a submitted form. If form data is submitted as XML data, then each field is retrieved. If form data is submitted as PDF data, then the submitted form is saved as a PDF file. (See Handling Submitted Forms.)/** This Java Quick Start uses the following JAR files* 1. adobe-forms-client.jar* 2. adobe-livecycle-client.jar* 3. adobe-usermanager-client.jar** (Because Forms quick starts are implemented as Java servlets, it is* not necessary to include J2EE specific JAR files - the Java project* that contains this quick start is exported as a WAR file which* is deployed to the J2EE application server)** 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.IOException;import javax.servlet.Servlet;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.adobe.livecycle.formsservice.client.*;import java.util.*;import java.io.DataInputStream;import java.io.File;import java.io.InputStream;import java.io.PrintWriter;import com.adobe.idp.Document;import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;//Import DOM librariesimport org.w3c.dom.NodeList;import org.w3c.dom.Node;import javax.xml.parsers.*;public class HandleData extends HttpServlet implements Servlet {public void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {doPost(req,resp);}public void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {try{PrintWriter pp = resp.getWriter();//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);//Create a FormsServiceClient objectFormsServiceClient formsClient = new FormsServiceClient(myFactory);//Get Form data to pass to the processFormSubmission methodDocument formData = new Document(req.getInputStream());//Set run-time optionsRenderOptionsSpec processSpec = new RenderOptionsSpec();processSpec.setLocale("en_US");//Invoke the processFormSubmission methodFormsResult formOut = formsClient.processFormSubmission(formData,"CONTENT_TYPE=application/pdf&CONTENT_TYPE=application/vnd.adobe.xdp+xml&CONTENT_TYPE=text/xml","",processSpec);//Determine if the form contains file attachments//It is assumed that file attachments are JPG filesList fileAttachments = formOut.getAttachments();//Create an Iterator object and iterate through//the List objectIterator iter = fileAttachments.iterator();int i = 0 ;while (iter.hasNext()) {Document file = (Document)iter.next();file.copyToFile(new File("C:\\Adobe\\tempFile"+i+".jpg"));i++;}//Get the processing stateshort processState = formOut.getAction();//Determine if the form data is ready to be processed//This code example checks only for submitted data (value is 0)if (processState == 0){//Determine the content type of the dataString myContentType = formOut.getContentType();if (myContentType.equals("application/vnd.adobe.xdp+xml")) {//Get the form dataDocument formOutput = formOut.getOutputContent();InputStream formInputStream = new DataInputStream(formOutput.getInputStream());//Create DocumentBuilderFactory and DocumentBuilder objectsDocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = factory.newDocumentBuilder();org.w3c.dom.Document myDOM = builder.parse(formInputStream);//Call for each field in the formString Amount = getNodeText("mortgageAmount", myDOM);String myLastName = getNodeText("lastName", myDOM);String myFirstName = getNodeText("firstName", myDOM);//Write the form data to the web browserpp.println("<p> The form data is :<br><br>" +"<li> The mortgage amount is "+ Amount+"" +"<li> Last name is "+ myLastName+"" +"<li> First name is "+ myFirstName+"") ;}else if (myContentType.equals("application/pdf")){//Get the form dataDocument myPDFfile = formOut.getOutputContent();//Create a PDF objectFile myPDFFile = new File("C:\\Adobe\\tempPDF.pdf");//Populate the PDF filemyPDFfile.copyToFile(myPDFFile);pp.println("<p> The PDF file is saved as C:\\Adobe\\tempPDF.pdf") ;}}}catch (Exception e) {e.printStackTrace();}}//This method returns the value of the specified nodeprivate String getNodeText(String nodeName, org.w3c.dom.Document myDOM){//Get the XML node by nameNodeList oList = myDOM.getElementsByTagName(nodeName);Node myNode = oList.item(0);NodeList oChildNodes = myNode.getChildNodes();String sText = "";for (int i = 0; i < oChildNodes.getLength(); i++){Node oItem = oChildNodes.item(i);if (oItem.getNodeType() == Node.TEXT_NODE){sText = sText.concat(oItem.getNodeValue());}}return sText;}}Note: When using a com.adobe.idp.Document object and an org.w3c.dom.Document in the same application, you must fully qualify org.w3c.dom.Document.
| 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/000080.html