首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux PDF/Postscript优化

Linux PDF/Postscript优化
EN

Stack Overflow用户
提问于 2010-04-17 05:59:49
回答 2查看 4.9K关注 0票数 6

所以我有一个用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秒。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-20 04:47:10

代码语言:javascript
复制
gs \
  -dCompatibilityLevel=1.4 \
  -dPDFSETTINGS=/screen \
  -dNOPAUSE \
  -dBATCH \
  -sDEVICE=pdfwrite \
  -sOutputFile=output.pdf \
   input.pdf

Ghostscript似乎对这个问题最有效。我现在遇到了一个不同的问题,ghostscript混淆了嵌入式字体,但我将为此打开一个新的问题。

票数 4
EN

Stack Overflow用户

发布于 2012-08-06 20:32:32

要减小PDF文件的大小,请使用pdfsizeopt,这是我正在开发的软件。pdfsizeopt可以在Linux、Mac、Windows (也可能在其他系统上)上运行。

pdfsizeopt有很多依赖项,所以安装它可能有点麻烦(大约占用您10分钟的时间)。我正在努力使安装变得更容易。

如果您很快需要一些东西,可以尝试它的一个依赖项: Multivalent,这是一个纯tool.pdf.Compress工具。

获取Multivalent20060102.jar,安装Java并运行

代码语言:javascript
复制
java -cp Multivalent20060102.jar tool.pdf.Compress input.pdf

gs -sDEVICE=pdfwrite的功能有一些限制:

它不能生成xref流(所以PDF文件会比必要的大)

  • 它不能产生对象流(所以PDF文件会比xref文件大,所以PDF文件不会去重复图像或其他对象)(即,如果同一图像在输入PDF文件中出现多次,gs在输出中为每个occurrence)

  • it创建副本发射图像suboptimally

  • it将图像重采样为低resolution

  • it有时会省略

  • 中的超链接它无法转换某些结构(因此输出的PDF可能与输入的结构在视觉上不同)

无论是pdfsizeopt还是多价的tool.pdf.Compress都不会受到这些限制。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2656329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档