2012-02-15 12 views
1

現在開いているColdfusionドキュメントからpdfを動的に生成する方法が必要です。しかし、cfdocumentタグを使用してpdfを生成する関数に現在の(html)テキストを渡す方法が見つからなかったため、これを処理する方法はわかりません。現在のドキュメントからpdfを生成

このヒントやアイデアは、どのようにこの問題を解決するのですか?

+0

特定のフレームワーク(Fusebox、ホイールのCFなど)を使用していますか? –

答えて

1

現在のレスポンス本文をキャプチャするのではなく、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ドキュメントとして出力されます。

1

あなたは、あなたもする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> 
3

私は以前のようなものでした:

<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> 
関連する問題