The following code example renders an HTML form using the
Forms web service API. The name of the custom CSS file that is referenced
is custom.css. (See Rendering HTML Forms Using Custom CSS Files.)
/*
* Ensure that you create the Java proxy classes to use
* base64 encoding. This is required to populate a BLOB
* object with data or retrieve data from a BLOB object.
*
* For information, see "Creating Java proxy classes using Apache Axis"
* in Programming with LiveCycle.
*/
import java.io.FileInputStream;
import java.io.IOException;
import java.util.HashMap;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.rpc.holders.LongHolder;
import javax.xml.rpc.holders.StringHolder;
import com.adobe.idp.services.BLOB;
import com.adobe.idp.services.FormsService;
import com.adobe.idp.services.OutputType;
import com.adobe.idp.services.FormsServiceServiceLocator;
import com.adobe.idp.services.HTMLRenderSpec;
import com.adobe.idp.services.HTMLToolbar;
import com.adobe.idp.services.TransformTo;
import com.adobe.idp.services.URLSpec;
import com.adobe.idp.services.holders.BLOBHolder;
import com.adobe.idp.services.holders.FormsResultHolder;
public class RenderHTMLFormsWSCSS 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{
//Create a FormsService object and set authentication values
com.adobe.idp.services.FormsServiceServiceLocator sl = new FormsServiceServiceLocator();
FormsService formsOb = sl.getFormsService();
((javax.xml.rpc.Stub)formsOb)._setProperty(javax.xml.rpc.Stub.
USERNAME_PROPERTY, "administrator");
((javax.xml.rpc.Stub)formsOb)._setProperty(javax.xml.rpc.Stub.
PASSWORD_PROPERTY, "password");
//Create an HTMLRenderSpec object to store
//HTML run-time options
HTMLRenderSpec htmlRS = new HTMLRenderSpec();
htmlRS.setHTMLToolbar(HTMLToolbar.Vertical);
//Render the HTML form within full HTML tags
htmlRS.setOutputType(OutputType.FullHTMLTags);
//Specify a custom CSS file to use
htmlRS.setCustomCSSURI("C:\\Adobe\custom.css");
//Specify file attachments to attach to the form
FileInputStream fileAttachment = new FileInputStream("C:\\rideau1.jpg");
BLOB attachment1 = new BLOB();
int len = fileAttachment.available();
byte []fileStream = new byte[len] ;
fileAttachment.read(fileStream);
attachment1.setBinaryData(fileStream);
String fileName = "rideau1.jpg";
//Create a HashMap object to store file attachments
HashMap fileAttachments = new HashMap();
fileAttachments.put(fileName, attachment1);
//Specify URI values used by the Forms service
URLSpec uriValues = new URLSpec();
uriValues.setApplicationWebRoot("http://localhost:8080/FormsWSQS");
uriValues.setContentRootURI("C:\\Adobe");
uriValues.setTargetURL("http://localhost:8080/FormsWSQS/HandleData");
//Create class holder objects
BLOBHolder outRenderPDFFormResultDoc = new BLOBHolder();
FormsResultHolder formsResult = new FormsResultHolder();
BLOBHolder blobHolder = new BLOBHolder();
LongHolder longHolder = new LongHolder();
StringHolder stringHolder = new StringHolder();
StringHolder stringHolder2 = new StringHolder();
//Invoke the renderHTMLForm method to render
//an HTML form
formsOb.renderHTMLForm(
"Loan.xdp",
TransformTo.MSDHTML,
null,
htmlRS ,
"",
uriValues,
null,
outRenderPDFFormResultDoc,
blobHolder,
longHolder,
stringHolder,
stringHolder2,
formsResult);
//Create a BLOB object that contains form data
BLOB formData = formsResult.value.getOutputContent();
//Get the content type of the response and
//set the HttpServletResponse object's content type
String contentType = formData.getContentType();
resp.setContentType(contentType);
//Create a ServletOutputStream object
ServletOutputStream oOutput = resp.getOutputStream();
//Create a byte array that stores form data in the BLOB object
byte[] cContent = formData.getBinaryData();
//Write a byte stream back to the web browser.
//Pass the byte array
oOutput.write(cContent);
}catch (Exception e) {
System.out.println("The following error occurred during this operation " +e.getMessage());
}
}
}
|
|
|