我有一个cfdocument标签,看起来像这样:
<cfdocument name="myPDF" format="PDF" ... >
...
</cfdocument>
我使用name属性将PDF保存在变量中,因为我将在多个地方使用它以进行多种用途。 (附在电子邮件上,在屏幕上显示等)
我想在浏览器中显示这个pdf,只是输出它就像我在cfdocument中遗漏了name属性一样,但我无法弄清楚如何做到这一点。使用cfoutput(<cfoutput>#myPDF#</cfoutput>
)给出了一个错误 - “ByteArray对象无法转换为字符串。”使用cfdump给我一个二进制对象。似乎pdf存储为二进制文件...如何强制它以PDF格式显示在屏幕上?
答案 0 :(得分:8)
找到一个解决方案(通过查看我们网站上其他地方的地方) - 使用了一个cfcontent:
<cfcontent type="application/pdf">
<cfoutput>#tostring(myPDF)#</cfoutput>
<强>更新强>:
我实际上发现了一种更直接的方法:
<cfcontent type="application/pdf" variable="#myPDF#">
答案 1 :(得分:-1)
与ColdFusion的PDF支持一样好,我们无法将生成的文件大小降低到合理的水平,这就是我们实现wkhtmltopdf的原因。
例如。 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 ......但没有