为什么组合pdf2ps/ps2pdf会缩小PDF?

vek*_*tor 5 compression pdf

在研究如何压缩一堆带有图片的PDF时(理想情况是以无损方式,但我会满足于有损),我发现有很多人建议这样做:

$ pdf2ps file.pdf
$ ps2pdf file.ps
Run Code Online (Sandbox Code Playgroud)

这有效!生成的文件较小,看起来至少足够好.

  • 这是如何工作的?
  • 我可以在此过程中调整哪些设置?
  • 如果有一些有损转换,那是哪一个?
  • 捕获量在哪里?

Kur*_*fle 5

推荐这种程序的人很少从专业知识或知识的背景下这样做 - 而是基于直觉.

绕过通过PostScript生成新PDF并返回(也称为"重写PDF")永远不会给您带来最佳效果.有时它很有用,例如,原始PDF根本不打印,或者不能由其他应用程序处理.但这些案件非常罕见.

在任何情况下,这种"往返"转换永远不会导致与最初相同的PDF文件.

另外,pdf2psps2pdf工具是不是在所有独立的工具:他们是一个Ghostscript的(大约只是简单的包装脚本gsgswin32c.exe)命令行.您可以通过以下方式检查自己:

cat $(which ps2pdf)
cat $(which pdf2ps)
Run Code Online (Sandbox Code Playgroud)

这也将揭示这些简单包装器用于相应转换的(默认)参数.

如果你运气不好,你将安装一个古老的Ghostscript.然后生成的PostScript pdf2ps将是Level 1 PS,对于许多可以被更现代的PDF文件使用的字体来说这将是"有损"的,从而导致先前矢量字体的光栅化.不完全是你想看的输出......

由于这两个工具无论如何都在使用Ghostscript(但在你背后),你最好自己运行Ghostscript.这使您可以更好地控制它使用的参数.特别有利的是,通过这种方式,您可以直接进行 PDF-> PDF转换,而无需通过中间PostScript文件格式进行任何绕道.

以下是一些答案,可以为您提供一些提示,说明您可以使用哪些参数来在输出PDF中以半控制方式降低文件大小: