cfchart未以PDF格式打印



我正在尝试使用cfdocument从HTML打印PDF。当我通过localhost访问它时,代码运行良好,但当我使用静态IP在同一服务器上在线测试它时,它会超时。

我尝试了cfhtmltopdf,它没有超时,但它没有生成图表,并显示"图像丢失图标"。既不会生成图表也不会生成图像。文本打印良好当使用图像或图表时,生成PDF大约需要20到30秒

我在CF11 32位和6位上都尝试过这个问题。即使是最简单的代码也会失败:

<cfhtmltopdf>
<!DOCTYPE html>
<html>
<body>
<div class="pdf_logo" style="margin-bottom: 20px;">
<a href="##"><img src="images/logo.png" width="180"></a>
</div>
</body>
</html>
</cfhtmltopdf>

您的问题可能是图像路径的分辨率。请尝试绝对路径(http://)或文件路径(file:\)。。。尝试从服务器本身的桌面解析图像。

请记住,服务器内部必须将您的images/log.png解析为类似的内容。如果(例如)您的pdf生成cfm位于非根文件夹中,则服务器可能会将其解析为http://blah.com/一些文件夹/images/logo.png-它自然不会工作,因为那里没有"images"文件夹。

其他可能性?您的服务器无法解析"内部"属性地址,或者正试图通过防火墙接口使用外部非属性地址。

幸运的是,几乎所有这些问题都可以很容易地测试或解决。您还可以通过简单地使用file方法将任何资源包含到PDF文件中来省去麻烦。

有关解决问题的更多信息,请参阅我在网络地址解决和Cfdocument上的帖子。

希望这能有所帮助!祝你好运

cfhtmltopdf也遇到过类似的问题。在我的案例中,我使用了一个cfimage标记,并且这些图像偶尔会在PDF文档中呈现。

我怀疑cfhtmltopdf标记的呈现是异步发生的,在一个独立的线程中,与该标记内可能发生的任何呈现(例如,cfimage或cfchart)不同。因此,cfhtmltopdf标记将完成渲染,并且它不会有cfimage或cfchart的渲染结果,因此它显示"已损坏的图像"图标,因为它找不到源。

因此,这个基于ColdFusion文档†的解决方案可能会对您有所帮助:

<!--- 1. Generate the chart as a jpeg image. --->
<cfchart name="myChart" format="jpg">             
<cfchartseries type="pie"> 
<cfchartdata item="New Vehicle Sales" value=500000> 
<cfchartdata item="Used Vehicle Sales" value=250000> 
<cfchartdata item="Leasing" value=300000> 
<cfchartdata item="Service" value=400000> 
</cfchartseries> 
</cfchart> 
<!--- 2. Write the jpeg image to a temporary directory. --->
<cffile  
action="write"  
file="#ExpandPath('/charts/vehicle.jpg')#"
output="#myChart#" />
<!--- 3. Generate the PDF file. --->
<cfhtmltopdf>
<!DOCTYPE html>
<cfoutput>
<html>
<body>
<div class="chart">
<!--- This image tag refers to the file created by cffile --->
<img src="/charts/vehicle.jpg" />
</div>
</body>
</html>
</cfoutput>
</cfhtmltopdf>

†基于此处的示例:http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec22c24-7934.html

相关内容

  • 没有找到相关文章

最新更新