首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态pdf-cfdocument + cfcontent + image + email附件

动态pdf-cfdocument + cfcontent + image + email附件
EN

Stack Overflow用户
提问于 2011-01-27 14:58:51
回答 2查看 3.6K关注 0票数 1

如何将图片加载到动态生成的pdf (cfdocument)中?因为pdf不存储在hdd中。pdf需要通过电子邮件发送,ram需要清除。图像存储在wwwroot文件夹之外。如果需要,pdf可以存储在hdd中,附加,发送电子邮件,然后删除,但会选择不将其存储在hdd中。

c:\coldFusion9\imgs\是目录

示例:

代码语言:javascript
复制
<cfdocument format="PDF" localurl="true">
<cfoutput> #vars#</cfoutput>
</cfdocument>

我用过

代码语言:javascript
复制
<img src="">

在cfdocument中,如果图像在wwwroot (http...)中,它就可以工作。文件夹,但当镜像不在wwwroot ("c:\coldFusion9\imgs#image#.png“或"../imgs/# image #.png")时就不会了。

我认为cfcontent是理想的。

因此,在cfdocument中,我这样做:

代码语言:javascript
复制
<cffile action="readbinary" file="c:\coldFusion9\imgs\#image#.png" variable="img">
<cfcontent type="image/jpg" variable="#img#" > 

结果是图像加载到屏幕上,而不是pdf。

希望通过电子邮件将pdf作为电子邮件附件发送。pdf不需要在屏幕上呈现,但出于测试目的,我们可以通过命名或不命名cfdocument,让它在屏幕上呈现,以了解图像是否已加载。当名称被移除时,pdf呈现,当名称存在时,它不呈现。

感谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-27 20:32:30

如果我没理解错你的问题。您想要1.从webroot外的文件夹中抓取图像2.将图像放入cfdocument 3.将cfdocument附加到cfmail

如果是这种情况,您需要cfimage而不是img,其余的可以在Ben Nadel的站点http://www.bennadel.com/blog/1700-Ask-Ben-Creating-A-PDF-And-Attaching-It-To-An-Email-Using-ColdFusion.htm上找到

或者在下面的代码片段上展开。

代码语言:javascript
复制
<cfdocument format="pdf" name="mydoc">

    <cfimage action="writeTobrowser" source="c:\temp\test.png" >

</cfdocument>

<cfmail
    from="x@y.com"
    to="y@x.com"
    subject="this is it">
    <cfmailparam
        file="mydoc.pdf"
        type="application/pdf"
        content="#mydoc#"/>
</cfmail>
票数 2
EN

Stack Overflow用户

发布于 2011-01-27 22:28:23

以下是要澄清的几点:

cfdocument使用HTTP连接来抓取图像,这就是为什么你不能在webroot之外抓取任何图像的原因。根据我的经验,相对路径是有问题的,所以最好使用绝对路径。如果你想使用webroot之外的图片,你需要直接提供图片,就像你的例子或者@KobbyPemson所做的那样。

添加名称时看不到PDF的原因是名称属性不会命名PDF。它是存储PDF的变量的名称。因此,当您提供它时,您就是在告诉CF使用您提供的名称将PDF填充到变量中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4813587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档