1

好奇这个。

我正在研究一个生成 PDF 文件的过程,结合来自各种来源的数据。我需要完成的最后一个过程是合并图像文件。

这实际上相当简单,但我遇到的问题是图像文件没有使用文件扩展名存储。在本地,我可以更改文件名,但在生产中这不是一个选项。

所以因为文件名看起来像:B71637CB-A49C-0653-EF813918736BDEB7

这将不起作用:

<cfimage action="writeTobrowser" source="#FilePath#> 

<img src="#FilePath#">.

那么,关于如何解决这个问题的任何想法?这是上下文中的代码:

<cfdocument format="PDF" name="report" filename="#fileToDownloadimage#" overwrite="yes">
    <cfdocumentsection>
        <cfimage action="writeTobrowser" source="#FilePath#.jpg">
    </cfdocumentsection>
</cfdocument>
4

3 回答 3

3

所以这就是最终的工作:

<cfdocument format="PDF" name="report" filename="#fileToDownloadimage#" overwrite="yes">
    <cfdocumentsection>
        <cfset fileObject = fileReadBinary('#FilePath#') />
        <cfset imageObject = imageNew(fileObject) />
        <cfimage action="writeTobrowser" source="#imageObject#">
    </cfdocumentsection>
</cfdocument>

亚历克斯的回答让我走上了正确的道路,所以我很高兴将荣誉留在原地,因为我没有接近这个!

于 2015-12-16T21:14:41.900 回答
1

如果您需要将图像嵌入到 PDF 文档中,请尝试 HTML 的内联图像功能:

<cfset fileLocation         = "/path/to/images/B71637CB-A49C-0653-EF813918736BDEB7">
<cfset imageContent         = fileReadBinary(fileLocation)>
<cfset imageContentAsBase64 = toBase64(imageContent)>

<cfoutput>
    <img src="data:image/jpeg;base64, #imageContentAsBase64#" />
</cfoutput>
于 2015-12-16T18:40:41.363 回答
0

您可以尝试使用 cfcontent 创建一个输出内容的 cfm 页面,如下所示:

<cfcontent type="image/jpg" file="path/#fielpath#">

然后你会包括那个cfm页面作为你的图像的来源,如

<img src="myFancyImageOuputer.cfm?image=#filepath#">

这应该可行,但可能需要一些试验和错误。:)

雷在这里有一些额外的提示:

http://www.raymondcamden.com/2007/09/14/Serving-up-CFIMages-via-Image-Tags-and-a-NonCF-Friday-contest

于 2015-12-16T18:21:51.663 回答