2

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

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

4

2 回答 2

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/

这是一篇文章的链接和一些可用于比较 WKHTMLTOPDF 与 CFDocument 的结果的示例 ColdFusion 代码。 http://gamesover2600.tumblr.com/post/108490381084/wkhtmltopdf-demo-to-compare-w-adobe-coldfusion

于 2015-06-04T17:33:21.850 回答
0

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

<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_file_name#,如果您想设置输出压缩 pdf 的名称,只需选择一个名称并将该名称放置 #pdf_file_name#在第二个 C:\ 行中引用的位置。

于 2015-06-12T16:01:44.823 回答