<< back
PDF forms with PD4MLPD4ML API supports generatePdfForms conversion parameter, which forces PD4ML to convert HTML forms to corresponding PDF forms.
Below is a simple PDF-forms based server-side "calculator". It submits PDF form input to server-side script and recieves the form update as FDF data.
<%@ taglib uri="http://pd4ml.com/tlds/pd4ml/2.6" prefix="pd4ml" %><%@page contentType="text/html; charset=ISO8859_1"%><pd4ml:transform screenWidth="300" pageFormat="A5" pageOrientation="landscape" pageInsets="100,100,100,100,points" enableImageSplit="false" generatePdfForms="true" enable="true"> <html> <head> <title>pd4ml test</title> <style type="text/css"> body { color: #000000; background-color: #FFFFFF; font-family: Tahoma, "Sans-Serif"; font-size: 10pt; } </style> </head> <body> <form action="fdf.jsp" method=get name=test> <table border=0> <tr> <td>Field 1:</td><td><input name=field1></td> </tr> <tr> <td>Field 2:</td><td><input name=field2></td> </tr> <tr> <td>Popup message:</td><td><input type=checkbox name=status value=ON></td> </tr> <tr> <td>Result:</td><td><input name=result readonly></td> </tr> <tr> <td> </td><td><input type=submit value=ADD></td> </tr> </table> </form> </body> </html> </pd4ml:transform>fdf.jsp <%@page contentType="application/vnd.fdf"%><% int v1 = 0; int v2 = 0; try { v1 = Integer.parseInt(request.getParameter("field1")); } catch ( NumberFormatException e ) { } try { v2 = Integer.parseInt(request.getParameter("field2")); } catch ( NumberFormatException e ) { } int res = v1 + v2; // business logic of the script String status = request.getParameter("status"); String message = ( status != null && status.length() > 0 ) ? "/Status (Well done!)" : ""; %> %FDF-1.2 1 0 obj <</FDF << <%=message%> /Fields [ << /T(result) /V(<%=res%>) >> << /T(field1) /V(<%=v1%>) >> << /T(field2) /V(<%=v2%>) >> % << /T(status) /V(<%=(message.length() > 0?"Yes":"Off")%>) >> % Checkbox init does not work for some reason ] /UF(<%=request.getHeader("referer") %>) /F(<%=request.getHeader("referer") %>) >> >> endobj trailer <</Root 1 0 R>> %%EOFDownload the example sources |