压缩coldfusion生成的PDF文档

时间:2015-05-26 16:18:00

标签: pdf coldfusion coldfusion-8 pdf-conversion

我正在尝试对CF8内置的pdf报告生成应用程序进行大修,他们有一个界面,可以生成50页法律报告作为pdf,每天发送大约100倍。然而,它非常麻烦,并且使已经过度工作的服务器陷入困境。是否有一个很好的PDF压缩脚本,我可以使用coldfusion运行或与Adobe acrobat集成以便在服务器通过电子邮件发送pdf之前压缩pdf?该系统已经使用可用的Coldfusion资源进行设置,以尝试帮助完成此过程,但仍然不够。

更新:我有机会进一步深入研究这个问题。这些文件的编写方式是通过4 CF表格,当有人在进入系统时手动输入法律数据。某些表单字段很长(接受超过10,000个字符或更多)。完成后,它会运行cfdocument标记,将所有内容转换为pdf。

2 个答案:

答案 0 :(得分:2)

CFDocument生成臃肿的PDF。我们测试了GhostScript并使用以下参数将22.3mb PDF压缩为4mb。 (如果设置为"屏幕",文件大小将进一步缩小至2.5mb。) http://www.ghostscript.com/

要使用此功能,您必须在生成PDF后执行此优化作为额外步骤,并在出现任何问题或超时时使用cftry / catch。

<CFSET ThePDFFile = "C:\test\OriginalPDF.pdf">
<cfexecute name="c:\Program Files\gs\gs9.14\bin\gswin64.exe"
arguments="-sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -dNOPAUSE -dQUIET -dBATCH -sOutputFile=#replace(ThePDFFile,'.pdf','-opt.pdf')# #ThePDFFile#" timeOut="160">
</cfexecute>

另一种解决方案是使用WKHTML2PDF生成PDF。结果文件要小得多。 ColdFusion 8-11的质量是一致的。您可以嵌入TrueType字体而无需注册它们,并且它没有任何与CFDocument一起出现的HTML / CSS怪癖。 http://wkhtmltopdf.org/

这是指向文章和一些示例ColdFusion代码的链接,您可以使用这些代码将WKHTMLTOPDF的结果与CFDocument进行比较。 http://gamesover2600.tumblr.com/post/108490381084/wkhtmltopdf-demo-to-compare-w-adobe-coldfusion

答案 1 :(得分:0)

我实际上能够使用NeeviaPDF压缩应用程序解决它并使用以下代码将其绑定到ColdFusion中:

<input>

您可以将值传递给变量<cfset pdf_file_name = 'qryGetFileJustUploaded' /> <cfexecute name="C:\Program Files (x86)\neeviaPDF.com\PDFcompress\cmdLine\CLcompr.exe" arguments="C:\inetpub\wwwroot\testingFolder\PDFCompression2\pdf\#pdf_file_name# C:\inetpub\wwwroot\testingFolder\PDFCompression2\pdf\#pdf_file_name# -co -ci jpg -cq 10 -gi jpg -gq 10 -mi jbig2 -mq 1" outputfile="C:\inetpub\wwwroot\testingFolder\PDFCompression2\output.txt" timeout="250"> </cfexecute> ,如果要设置输出压缩pdf的名称,只需选择一个名称并将该名称放在第二个引用#pdf_file_name#的位置C:\ line。