現在開いているColdfusionドキュメントからpdfを動的に生成する方法が必要です。しかし、cfdocumentタグを使用してpdfを生成する関数に現在の(html)テキストを渡す方法が見つからなかったため、これを処理する方法はわかりません。現在のドキュメントからpdfを生成
このヒントやアイデアは、どのようにこの問題を解決するのですか?
現在開いているColdfusionドキュメントからpdfを動的に生成する方法が必要です。しかし、cfdocumentタグを使用してpdfを生成する関数に現在の(html)テキストを渡す方法が見つからなかったため、これを処理する方法はわかりません。現在のドキュメントから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のソースとしてあなたのcfdocumentのを指定することができますcfpdf
を使用して基本的なHTMLからPDFを生成することができます:cfdocumentのなし
<cfpdf action="write" source="someCfDocument" destination="myBook1.pdf" overwrite="yes">
例:
<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など)を使用していますか? –