1

我在使用 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 呈现之前将图像写入变量。这似乎产生了一个错误。

预先感谢您的反馈。

4

3 回答 3

1

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

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

另一种可能性可能是 CF 不“信任”SSL。您可以尝试使用 CFHTTP 获取该图像 URL,您将知道是否是这种情况。请参阅:Coldfusion:带有 SSL 加密页面的 CFHTTP (https://) - 出现错误

于 2012-05-17T15:07:12.167 回答
1

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

<cfscript>
myImg = imageRead("http://i.mycommentspace.com/23/2371.jpg") ;
imageWrite(myImg,"c:\myimage.jpg",0.8);
</cfscript>

顺便说一句——当你使用本地路径时,CFDOCUMENT 中的图像往往效果最好,所以一旦你抓住了图像,试试,例如<img src="c:/myimage.jpg" />

于 2012-05-18T19:44:26.147 回答
0

localUrl="yes"(或=true)对于 CF 生成 pdf 非常挑剔的 https 失败。

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

您必须注意上下遍历目录才能到达您的 \images 文件夹。

于 2016-12-27T23:31:17.253 回答