The following Java quick start renders an interactive PDF
form that is based on a form design named Loan.xdp by value.
Notice that the form design is used to populate the BLOB object
named inputXDP. (See Rendering Forms By Value.)
/*
* 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.IOException;
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 java.io.FileInputStream;
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.FormsServiceServiceLocator;
import com.adobe.idp.services.PDFFormRenderSpec;
import com.adobe.idp.services.URLSpec;
import com.adobe.idp.services.holders.BLOBHolder;
import com.adobe.idp.services.holders.FormsResultHolder;
public class RenderByValue 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{
com.adobe.idp.services.FormsServiceServiceLocator sl = new FormsServiceServiceLocator();
FormsService formsOb = sl.getFormsService();
//Specify the user name and password to invoke LiveCycle
((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");
//Specify file attachments to attach to the form
FileInputStream fileInputStream = new FileInputStream("C:\\Adobe\Loan.xdp");
BLOB inputXDP = new BLOB();
int len = fileInputStream.available();
byte []fileStream = new byte[len] ;
fileInputStream.read(fileStream);
inputXDP.setBinaryData(fileStream);
//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();
LongHolder longHolder = new LongHolder();
StringHolder stringHolder = new StringHolder();
//Invoke the renderPDFForm method to render
//an interactive PDF form
formsOb.renderPDFForm(
"",
inputXDP,
new PDFFormRenderSpec(),
uriValues,
null,
outRenderPDFFormResultDoc,
longHolder,
stringHolder,
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());
}
}
}
|
|
|