Viewing 1 post (of 1 total)
  • Author
    Posts
  • #26563

    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.

    Note: Preview.app of Mac OS X (default PDF reader of Safari browser) does not seem to support PDF form submitting.

    index.jsp

    <%@ taglib uri="https://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>>
    %%EOF

Viewing 1 post (of 1 total)

The forum ‘PD4ML Tips & Tricks’ is closed to new topics and replies.