所以我有一个用Java和iText构建的报表系统。PDF模板是使用Scribus创建的。Java代码使用iText将数据合并到文档中。然后将这些文件复制到NFS共享,并由BASH脚本打印它们。
我使用acroread将它们转换为PS,然后lpr转换为PS。
自由/开源软件应用程序pdftop的效率非常低。
我的主要问题是使用iText/Scribus生成的PDF非常大。我最近遇到了一个问题,那就是acroread在大型(300+页面)文档上达到了4 4gb的内存使用率。(Adobe在将内容更新到64位方面慢得令人痛苦)。
现在我可以在Windows上使用Adobe阅读器,并使用Reduce file size选项或其名称,它极大地(>10倍)减小了PDF的大小(它删除了许多有关表单域的元数据,等等),并生成一个基本上是打印图像的PDF。
我的问题是,有没有人知道在Linux上做类似事情的好的解决方案/程序。理想情况下,它将优化PDF,减小大小,并降低PS复杂性,以便打印机可以更快地打印,因为现在打印一页大约需要15-20秒。
发布于 2010-04-20 04:47:10
gs \
-dCompatibilityLevel=1.4 \
-dPDFSETTINGS=/screen \
-dNOPAUSE \
-dBATCH \
-sDEVICE=pdfwrite \
-sOutputFile=output.pdf \
input.pdfGhostscript似乎对这个问题最有效。我现在遇到了一个不同的问题,ghostscript混淆了嵌入式字体,但我将为此打开一个新的问题。
发布于 2012-08-06 20:32:32
要减小PDF文件的大小,请使用pdfsizeopt,这是我正在开发的软件。pdfsizeopt可以在Linux、Mac、Windows (也可能在其他系统上)上运行。
pdfsizeopt有很多依赖项,所以安装它可能有点麻烦(大约占用您10分钟的时间)。我正在努力使安装变得更容易。
如果您很快需要一些东西,可以尝试它的一个依赖项: Multivalent,这是一个纯tool.pdf.Compress工具。
获取Multivalent20060102.jar,安装Java并运行
java -cp Multivalent20060102.jar tool.pdf.Compress input.pdfgs -sDEVICE=pdfwrite的功能有一些限制:
它不能生成xref流(所以PDF文件会比必要的大)
无论是pdfsizeopt还是多价的tool.pdf.Compress都不会受到这些限制。
https://stackoverflow.com/questions/2656329
复制相似问题