如何输出pdf变量?

时间:2011-11-08 21:33:38

标签: pdf coldfusion

我有一个cfdocument标签,看起来像这样:

<cfdocument name="myPDF" format="PDF" ... >
   ...
</cfdocument>

我使用name属性将PDF保存在变量中,因为我将在多个地方使用它以进行多种用途。 (附在电子邮件上,在屏幕上显示等)

我想在浏览器中显示这个pdf,只是输出它就像我在cfdocument中遗漏了name属性一样,但我无法弄清楚如何做到这一点。使用cfoutput(<cfoutput>#myPDF#</cfoutput>)给出了一个错误 - “ByteArray对象无法转换为字符串。”使用cfdump给我一个二进制对象。似乎pdf存储为二进制文件...如何强制它以PDF格式显示在屏幕上?

2 个答案:

答案 0 :(得分:8)

找到一个解决方案(通过查看我们网站上其他地方的地方) - 使用了一个cfcontent:

<cfcontent type="application/pdf">
<cfoutput>#tostring(myPDF)#</cfoutput>

<强>更新

我实际上发现了一种更直接的方法:

<cfcontent type="application/pdf" variable="#myPDF#">

答案 1 :(得分:-1)

与ColdFusion的PDF支持一样好,我们无法将生成的文件大小降低到合理的水平,这就是我们实现wkhtmltopdf的原因。

http://wkhtmltopdf.org/

例如。 1mb CF PDFs与20kb wkhtmltopdf PDF。 (wtf ??)如果你有像我们这样的网站,有1000s的pdf(发票),1mb是不可接受的。

wkhtmltopdf太棒了。它使用webkit将html页面转换为pdfs。是的,你可以在你的HTML中嵌入字体,透明图像,CSS和JavaScript!嵌入谷歌网页字体也不会破坏文件大小,比如+ 2-4kb,它们看起来很性感。

您只需制作一个html页面并使用此外部二进制文件将html转换为pdf。在您的cf脚本中<cfexecute>,然后fileRead()内容。

你认为Acrobat,正在和Adobe产品,以及ColdFusion,也是一个Adobe产品,会产生最好的PDF ......但没有