The following example shows how ColdFusion lets you update a PDF form while retaining existing data. The application lets a user create an office supply request from a blank form created in LiveCycle or modify an existing supply request. The user has the option to submit the completed form as an e-mail attachment.
<!--- supplyReq1.cfm --->
<!--- The following code prefills fields in a blank form in LiveCycle and writes the prefilled
form to a new file called NewRequest.pdf in the supplyReqs directory. --->
<cfpdfform source="SupplyReq.pdf" action="populate" destination="supplyReqs/NewRequest.pdf"
overwrite="yes">
<cfpdfsubform name="form1">
<cfpdfformparam name="txtContactName" value="Constance Gardner">
<cfpdfformparam name="txtCompanyName" value="Wild Ride Systems">
<cfpdfformparam name="txtAddress" value="18 Melrose Place">
<cfpdfformparam name="txtPhone" value="310-654-3298">
<cfpdfformparam name="txtCity" value="Hollywood">
<cfpdfformparam name="txtStateProv" value="CA">
<cfpdfformparam name="txtZipCode" value="90210">
</cfpdfsubform>
</cfpdfform>
<!--- The following code lets users choose an existing supply request form or create a new
request from a the NewRequest.pdf form. --->
<h3>Office Supply Request Form</h3>
<p>Please choose the office supply request form that you would like to open. Choose <b>New
Supply Request</b> to create a new request.</p>
<!--- The following code populates a list box in a form with files located in the specified
directory. --->
<cfset thisDir = expandPath(".")>
<cfdirectory directory="#thisDir#/supplyReqs" action="list" name="supplyReqs">
<cfif #supplyReqs.name# is "NewRequest.pdf">
<cfset #supplyReqs.name# = "---New Supply Request---">
</cfif>
<cfform name="fileList" action="supplyReq2.cfm" method="post">
<cfselect name="file" query="supplyReqs" value="name" display="name"
required="yes" size="8" multiple="no"/><br/>
<cfinput type="submit" name="submit" value="OK">
</cfform>
<!--- supplyReq2.cfm --->
<!--- The following code displays the PDF form that the user selected. --->
<cfif #form.file# is "---New Supply Request---">
<cfset #form.file# = "NewRequest.pdf">
</cfif>
<cfpdfform source="supplyReqs/#form.file#" action="populate"/>
<!--- supplyReq3.cfm --->
<!--- The following code reads the PDF file content from the submitted PDF form. --->
<cfpdfform source="#PDF.content#" action="read" result="fields"/>
<!--- The following code writes the PDF form to a file and overwrites the file if it exists. --->
<cfpdfform action="populate" source="#PDF.content#" destination="SupplyReqs/supplyReq_#fields.form1.txtRequestNum#.pdf" overwrite="yes"/>
<!--- The following code customizes the display based on field values extracted from the PDF
form. --->
<p><cfoutput>#fields.form1.txtRequester#</cfoutput>,</p>
<p>Your changes have been recorded for supply request <cfoutput>#fields.form1.txtRequestNum#</cfoutput>.</p>
<p>If the form is complete and you would like to submit it to <cfoutput>#fields.form1.txtContactName#</cfoutput> for processing, click <b>Submit</b>.
<!--- The following code gives the option to e-mail the submitted form as an attachment or
return to the home page. --->
<cfform name="send" method="post" action="supplyReq4.cfm">
<cfinput type="hidden"
value="SupplyReqs/supplyReq_#fields.form1.txtRequestNum#.pdf" name="request">
<cfinput type="hidden" value="#fields.form1.txtRequester#" name="requester">
<cfinput type="submit" value="Submit" name="Submit">
</cfform>
<p>If you would like to modify your request or choose another request,
<a href="supplyReq1.cfm">click here</a>.</p>
<!--- supplyReq4.cfm --->
<!--- The following code sends the completed PDF form as an attachment to the person
responsible for processing the form. --->
<p>Your request has been submitted.</p>
<cfmail from="#form.requester#@wildride.com" to="cgardener@wildride.com"
subject="see attachment">
Please review the attached PDF supply request form.
<cfmailparam file="#form.request#">
</cfmail>