Coldfusion CFDOCUMENT创建一个红色X.

时间:2012-05-17 14:21:08

标签: coldfusion cfdocument cfimage

我遇到使用ColdFusion进行服务器到服务器调用的问题。

假设我有两台服务器,每台服务器都有一个文件:
www.Content.com/webpage.cfm
www.Badge.com/badge.jpg

我的源代码如下所示:

<cfdocument format="pdf" pagewidth="11" pageheight="8.5">

This is a simple PDF that was created to show issues with content generation on the server. This PDF uses an http:// reference to the badge server to show an image of a badged team member.

<BR />
<BR />

<img src="https://www.badge.com/badge.jpg" />

</cfdocument>

如果我删除了CFDOCUMENT标签,页面会完美呈现,JPG图像会完全显示。但是,当我将页面呈现为PDF时,文档不包含JPG文件,并且在图像不应该出现的地方会出现大而丑陋的红色X.

我的网络管理员建议,虽然用户可以对徽章和内容进行身份验证,但徽章服务器可能无法对内容进行身份验证,反之亦然。如何指示coldfusion从当前登录的用户获取用户权限并提取图像?

我研究了使用CFIMAGE并将图像文件保存到内容RAM中,然后在PDF渲染之前将图像写入变量。这似乎产生了一个错误。

提前感谢您的反馈。

3 个答案:

答案 0 :(得分:1)

图像总是不同吗?否则,您可能希望在本地将图像保存在服务器上,并使用属性localURL

http://www.ravenglass.com/blog/index.cfm/2010/6/9/Including-Images-in-a-PDF-created-in-CFDOCUMENT

另一种可能性可能是SSL不被CF“信任”。您可以尝试使用CFHTTP获取该图像URL,您将知道是否是这种情况。见:Coldfusion: CFHTTP with SSL encrypted Page (https://) - got an error

答案 1 :(得分:1)

CFHTTP不需要通过URL抓取图像并将其保存在本地。试试这个:

<cfscript>
myImg = imageRead("http://i.mycommentspace.com/23/2371.jpg") ;
imageWrite(myImg,"c:\myimage.jpg",0.8);
</cfscript>
BTW - 当你使用本地路径时,CFDOCUMENT中的图像效果最好,所以一旦你抓住图像,试试,例如<img src="c:/myimage.jpg" />

答案 2 :(得分:0)

localUrl="yes"(或=true)因https而失败,而生成pdfs的CF非常挑剔。

<img src="file:\\\#replace(getCurrentTemplatePath(),"my.cfm")#images\my.png">

您必须介意遍历目录才能到达\ images文件夹。