【问题标题】:dynamic pdf-cfdocument + cfcontent + image + email attachement动态 pdf-cfdocument + cfcontent + 图片 + 电子邮件附件
【发布时间】:2011-01-27 22:28:22
【问题描述】:

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

c:\coldFusion9\imgs\ 是目录

示例:

<cfdocument format="PDF" localurl="true">
<cfoutput> #vars#</cfoutput>
</cfdocument>

我用过

<img src="">

在 cfdocument 中,如果图像位于 wwwroot (http...) 文件夹中,则它可以工作,但当图像位于 wwwroot 之外时(“c:\coldFusion9\imgs#image#.png”或“. ./imgs/#image#.png")。

我认为 cfcontent 是理想的

所以,在 cfdocument 中,我这样做:

<cffile action="readbinary" file="c:\coldFusion9\imgs\#image#.png" variable="img">
<cfcontent type="image/jpg" variable="#img#" > 

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

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

感谢您的帮助。

【问题讨论】:

    标签: coldfusion coldfusion-9


    【解决方案1】:

    如果我正确理解您的问题。你想要 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

    或扩展下面的sn-p。

    <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>
    

    【讨论】:

    • 感谢您的意见。有了以上内容,我可以生成 pdf、附件和电子邮件,但图像没有加载。它对你有用吗?再次感谢您。
    • 对我有用。我用的是coldfusion 9 你用的是什么?
    • 在 CF9 上。它现在工作,不知道我做错了什么。感谢您的帮助。
    【解决方案2】:

    需要澄清的几点说明:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-02
      • 2016-07-30
      • 2011-07-23
      • 1970-01-01
      • 2021-06-26
      • 2023-03-22
      • 2023-03-07
      • 1970-01-01
      相关资源
      最近更新 更多