我需要一種從當前打開的Coldfusion文檔動態生成pdf的方法。但我不知道如何處理這個問題,因爲我沒有找到一種方法,即將當前(html)文本傳遞給使用cfdocument標記生成pdf的函數。從當前文檔生成pdf
任何提示或想法,如何解決這個問題?
我需要一種從當前打開的Coldfusion文檔動態生成pdf的方法。但我不知道如何處理這個問題,因爲我沒有找到一種方法,即將當前(html)文本傳遞給使用cfdocument標記生成pdf的函數。從當前文檔生成pdf
任何提示或想法,如何解決這個問題?
您可以使用cfdocument的「src」屬性通過內部自引用請求請求當前頁面,而不是捕獲當前響應正文。
內的Application.cfc:
<cffunction name="onRequestStart">
<cfif IsDefined("url.showAsPDF") AND
url.showAsPDF IS "true" AND
cgi.http_user_agent IS NOT "ColdFusion">
<cfset myURL =
"http" &
(IsDefined('CGI.HTTPS') AND CGI.HTTPS IS "On") ? "s" : "") &
"://#cgi.server_name#:#cgi.SERVER_PORT##cgi.script_name#?#cgi.query_string#">
<cfdocument src="#myURL#" format="PDF"></cfdocument><cfabort>
</cfif>
</cffunction>
這將尋找名爲 「showAsPDF」 URL參數的存在。當它被定義並設置爲「true」時,則此代碼將在內部接管並運行相同的請求,並通過調用cfdocument進行路由。該響應將作爲PDF文檔輸出。
您可以通過使用cfpdf
生成基本的HTML PDF文檔,你甚至可以指定你的cfdocument作爲源cfpdf:
<cfpdf action="write" source="someCfDocument" destination="myBook1.pdf" overwrite="yes">
例無cfdocument:
<cfpdf action="write" destination="myBook1.pdf" overwrite="yes">
<p>My dynamic html goes here</p>
</cfpdf>
我之前做過這樣的事情:
<cfsavecontent variable="pdf">
<table>
...lots of html and CF code ...
</table>
</cfsavecontent>
<cfdocument format="PDF" encryption="NONE">
<cfdocumentsection>
<cfoutput>#pdf#</cfoutput>
<cfdocumentitem type="footer">
<cfoutput>
#cfdocument.currentpagenumber# of #cfdocument.totalpagecount#
</cfoutput>
</cfdocumentitem>
</cfdocumentsection>
</cfdocument>
你是否在使用任何特定的框架(Fusebox,車輪上的CF等等)? – 2012-02-15 17:14:10