从当前文档生成 pdf

发布于 2025-01-05 09:38:35 字数 139 浏览 0 评论 0原文

我需要一种从当前打开的 Coldfusion 文档动态生成 pdf 的方法。但我不知道如何处理这个问题,因为我没有找到一种方法,即将当前(html)文本传递给使用 cfdocument 标签生成 pdf 的函数。

任何提示或想法,如何解决这个问题?

I need a way to dynamicly generate a pdf from the currently opened coldfusion document. But I don't have an idea how to handle this because I didn't find a way i.e. to pass the current (html) text to a function which generates the pdf by using the cfdocument tag.

Any hints or ideas, how to solve this problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

勿忘心安 2025-01-12 09:38:35

我之前做过类似的事情:

<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>

I did something like this before:

<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>
埋情葬爱 2025-01-12 09:38:35

您可以使用 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 文档。

Rather than capture the current response body, you could use the "src" attribute of cfdocument to request the current page via an internal self-referencing request.

within 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>

This will look for the presence of a URL parameter named "showAsPDF". When it is defined and set to "true", then this code will take over and run the same request internally, routed through a call to cfdocument. The response will then be output as a PDF document.

惜醉颜 2025-01-12 09:38:35

您可以使用 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>

You can generate a pdf from basic html by using cfpdf

You can even specify your cfdocument as source for cfpdf:

<cfpdf action="write" source="someCfDocument" destination="myBook1.pdf" overwrite="yes">

Example without a cfdocument:

<cfpdf action="write" destination="myBook1.pdf" overwrite="yes">
    <p>My dynamic html goes here</p>
</cfpdf>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文