有可能在WKHTMLTOPDF插件中使用coldfusion变量吗?我正在尝试如下,但只收到一个空白PDF。我假设它失败是因为URL变量。
<cfexecute name="C:\Program Files (x86)\wkhtmltopdf\bin\wkhtmltopdf.exe"
arguments="c:\inetpub\wwwroot\serviceticket\reports\dropoff_receipt.cfm?ticket_id=#url.ticketID#&signature_id=#check_signature.id# C:\google.pdf"
timeout="10" /> 更新1:
将源更改为URL,但也有相同的错误。
<cfexecute name="C:\Program Files (x86)\wkhtmltopdf\bin\wkhtmltopdf.exe"
arguments="'../../serviceticket/reports/dropoff_receipt.cfm?ticket_id=#url.ticketID#&signature_id=#check_signature.id# C:\google.pdf"
timeout="10" /> 更新2:
添加完完整的URL后,下面是PDF的截图。它显然不是空的,但是错误消息中URL的路径与我指定的URL有很大的不同。?

-Brian
发布于 2016-03-02 15:29:50
我为WKHTMLTOPDF编写了一个CF9+包装器。它生成命令行参数并将它们按正确的顺序排列。您还可以提供单独的页眉、正文和页脚URL。
http://gamesover2600.tumblr.com/post/125851537339/generating-pdfs-using-coldfusion-wkhtmltopdf
我建议将ColdFusion生成的HTML作为临时静态文件保存到实际的HTML服务器上。这使得WKHTMLTOPDF不必处理w/任何与CF相关的会话/安全障碍,并且可以正确地确定所有相关的MIME类型(如果使用file://参数,则不能这样做)。您可以在PDF生成后删除临时文件,也可以将其保存以供以后查看/重新生成。
对于分页符,请使用CSS page-break-inside、page-break-after和page-break-before。
<CF_WKHTMLTOPDF
AddDefaultHeader = "0"
PageURL = "http://#CGI.Server_Name#/test_page.htm"
filename = "c:\test_page.pdf"
orientation = "portrait"
DisableSmartShrinking="yes"
dpi="96"
PageSize="letter"
margintop = "0"
marginleft = "0"
marginright = "0"
marginbottom = "0">
<CFDUMP VAR="#WKHMLTOPDF_Result#">发布于 2016-02-27 20:23:08
为了扩展评论中的一些项目:
- `errorVariable` - Variable name. Populate this variable name with any error messages
- `errorFile` - Absolute File path. Output any text the program writes to `StdErr` to this file. Typically, this translates to mean error messages.注意:只是知道一些程序,也写状态消息到StdErr流,而不仅仅是错误。因此,一个非空的错误变量或文件并不总是表示问题。WKHTMLToPDF恰好是其中之一,所以请记住这一点。
http://servername/scriptname.cfm,而不是本地文件。显然,首先在浏览器中验证目标URL是可访问的。综合起来,这个简单的测试用例在CF11下工作得很好。
CFExecute
<cfset url.ticketID = 123>
<cfset check_signature.id = 456>
<!--- Note: Arguments containing spaces may need to be enclosed in quotes --->
<cfexecute name="C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe"
arguments="http://localhost:8500/wkhtmlTestPage.cfm?ticket_id=#url.ticketID#&signature_id=#check_signature.id# C:\temp\wkhtmlTest.pdf"
errorVariable="errorMessage"
timeout="10"
/>
<cfdump var="#errorMessage#" label="errorVariable">wkhtmlTestPage.cfm
<cfparam name="URL.ticket_id" default="default ticket_id">
<cfparam name="URL.signature_id" default="default signature_id">
<cfdump var="#URL#">发布于 2021-07-28 07:51:11
对于冷融合中的WKHTMLTOPDF,我使用的是.cfc包装器(发现它是这里)。在.cfc中唯一要更改的是WKHTMLTOPDF安装的路径。
然后,您可以在coldfusion文件中这样使用它(在这个示例中,使用CF变量发送到WKHTMLTOPDF选项):
<cfscript>
wkhtmltopdf = new Wkhtmltopdf();
pdf = wkhtmltopdf.fromURL("[path to]/file.html", {'headerRight': '#Application.headertext#'});
</cfscript>
<cfcontent type="application/pdf" variable="#pdf#"></cfcontent>https://stackoverflow.com/questions/35663999
复制相似问题