You can use the cfhttp tag in combination with the cfdocument tag to display entire web pages in PDF or FlashPaper output format, as the following example shows:
<!--- You can pass a URL in the URL string --->
<cfparam name="url.target_url" default="http://www.boston.com">
<cfoutput>
<cfhttp url="#url.target_url#" resolveurl="yes">
<cfdocument format="FlashPaper">
<cfdocumentitem type="header">
<cfoutput>#url.target_url#</cfoutput>
</cfdocumentitem>
<cfdocumentitem type="footer">
<cfoutput>#cfdocument.currentpagenumber# / #cfdocument.totalpagecount#</cfoutput>
</cfdocumentitem>
<!--- Display the page --->
#cfhttp.filecontent#
</cfdocument>
</cfoutput>
The cfdocument tag supports the Acrobat security options, as the following table shows:
|
Security option |
Description |
|---|---|
|
Encryption |
Use the encryption attribute to specify whether PDF output is encrypted. Specify one of the following:
|
|
User password |
Use the userpassword attribute to specify a password that users must enter to view the document. |
|
Owner password |
Use the ownerpassword attribute to specify a password that users must enter to view and optionally modify the document. |
Additionally, the cfdocument tag supports the following Acrobat security permissions through the permissions attribute. Specify one or more of the following values; separate multiple permissions with a comma:
|
Permission |
Description |
|---|---|
|
Printing |
Specify the AllowPrinting attribute to enable viewers to print the document. |
|
Modification |
Specify the AllowModifyContents attribute to let viewers modify the document, assuming they have the required software. |
|
Copy |
Specify the AllowCopy attribute to let viewers select and copy text from the document. |
|
Annotation |
Specify AllowModifyAnnotations to let viewers add comments to the document. If users add annotations, they must save the PDF after making changes. |
|
Screen readers |
Specify AllowScreenReaders to enable access to the document through a screen reader. |
|
Fill in |
Specify AllowFillIn to enable users to use form fields. |
|
Assembly |
Specify AllowAssembly to enable users to create bookmarks and thumbnails, as well as insert, delete, and rotate pages. |
|
Degraded printing |
Specify AllowDegradedPrinting to enable low-resolution printing. Low resolution printing prints each page as a bitmap, so printing may be slower. |
The following example creates a PDF document that allows copying only:
<cfdocument format="PDF" encryption="40-bit"
ownerpassword="us3rpa$$w0rd" userpassword="us3rpa$$w0rd"
permissions="AllowCopy" >
<h1>Employee List</h1>
<cfquery name="EmpList" datasource="cfdocexamples">
SELECT FirstName, LastName, Salary
FROM Employee
</cfquery>
<cfoutput query="EmpList">
#EmpList.FirstName#, #EmpList.LastName#, #LSCurrencyFormat(EmpList.Salary)#<br>
</cfoutput>
</cfdocument>
You can use the cfdocument filename attribute to save the generated PDF or SWF output to a file, as the following example shows:
<!--- The compasstravel database is part of the Getting Started
tutorial application, found under the cfdocs directory. --->
<cfquery datasource="compasstravel" name="compasstrips">
SELECT tripName, tripDescription, tripLocation, price
FROM trips
ORDER BY price
</cfquery>
<cfdocument format="pdf"
filename="#GetDirectoryFromPath(GetTemplatePath())#/compasstrips.pdf"
overwrite="yes">
<cfdocumentsection>
<h1 align="center">Compass Travel</h1>
<h2 align="center">Destination Guide</h2>
<p align="center"><img src="cfdocs/getting_started/photos/somewhere.jpg"></p>
</cfdocumentsection>
<cfdocumentsection>
<cfdocumentitem type="header">
<font size="-3"> <i>Compass Travel Trip Descriptions</i></font>
</cfdocumentitem>
<cfdocumentitem type="footer">
<font size="-3">
<cfoutput>Page #cfdocument.currentpagenumber#</cfoutput>
</font>
</cfdocumentitem>
<cfoutput query="compasstrips">
<hr>
<h2>#tripName#</h2>
<p><b>#tripLocation#</b></p>
<p>Price: #DollarFormat(price)#</p>
<p>#tripDescription#</p>
</cfoutput>
</cfdocumentsection>
</cfdocument>