【问题标题】:ghostscript pdfwrite specify jpeg qualityghostscript pdfwrite 指定 jpeg 质量
【发布时间】:2017-04-12 11:19:25
【问题描述】:

我正在尝试连接多个 pdf 文件,这些文件基本上是包含 jpg 图像的相册的页面。对于我的输出 pdf 文件,我希望将图像分辨率调整为 300 dpi,并且我希望保持最佳质量。我使用的命令是:

gswin64c.exe -dNOPAUSE -dBATCH ^-dDownsampleColorImages=true -dColorImageResolution=300 ^-dDownsampleGrayImages=true -dGrayImageResolution=300 ^-dDownsampleMonoImages=true -dMonoImageResolution=300 ^-sDEVICE=pdfwrite -dJPEGQ=100 -sOutputFile=out.pdf in1.pdf in2.pdf

但是,似乎 -dJPEGQ=100 对输出没有影响。更改此参数会导致相同的文件大小,并且在所有值的图像中都可以看到伪影。使用选项 -dPDFSETTINGS=/printer 运行命令我会得到更好的结果而没有伪影,但是这个选项也应该导致 300 dpi。那么在输出文件中指定 jpg 图像质量的正确命令是什么?

【问题讨论】:

  • 基本答案是“不要使用 JPEG”。 JPEG 是一种有损压缩方法,多个应用程序往往会相互干扰,从而进一步降低质量。如果原件是 JPEG,则在输出上强制使用 Flate 压缩而不是 DCT (JPEG)。 'JPEGQ' 开关特定于 JPEG 设备(如 te 文档中所述),因此对 pdfwrite 设备无效。您可以调整 DCT 编码,但您需要使用 PostScript 来调整 DCTEncode 过滤器。如果您想这样做,请参阅 PostScript 语言参考手册。
  • 我认为这是一个完整的有效答案@KenS
  • 通常我会在 DCTEncode 过滤器上添加信息,但我正在旅行......
  • 嘿,非常感谢您的回答!它让我看起来更深,我通过 -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode 强制进行了 Flate 压缩。但是印刷厂不喜欢输出尺寸。所以我用以下命令调整了 DCTEncode 过滤器:gswin64c.exe -sOutputFile=out.pdf -dNOPAUSE -dBATCH ^-sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -c ".setpdfwrite << /ColorACSImageDict << /VSamples [ 1 1 1 1 ] /HSamples [ 1 1 1 1 ] /QFactor 0.08 /Blend 1 >> /ColorImageDownsampleType /Bicubic /ColorConversionStrategy /LeaveColorUnchanged >> setdistillerparams" -f in1.pdf
  • @tribol 这真是太棒了!我使用您的设置将包含无损图像的 88 MB 文件缩小为包含有损但仍然高质量图像的 26 MB 文件。 30 MB 是我的限制,如果没有这些自定义选项,我只能得到一个 11 MB 的文件,其中的图像质量很差。

标签: pdf-generation ghostscript


【解决方案1】:

解决方案是使用以下命令调整 DCTEncode 过滤器:

gswin64c.exe -sOutputFile=out.pdf -dNOPAUSE -dBATCH ^-sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -c "<< /ColorACSImageDict << /VSamples [ 1 1 1 1 ] /HSamples [ 1 1 1 1 ] /QFactor 0.08 /Blend 1 >> /ColorImageDownsampleType /Bicubic /ColorConversionStrategy /LeaveColorUnchanged >> setdistillerparams" -f in1.pdf

这会生成一个质量令人满意的压缩文件,并且可以根据每个人的需要进行调整。

编辑:

.setpdfwrite 参数已被最近的 ghostscript 版本 (> 9.50) 弃用,所以我在答案中删除了它

【讨论】:

  • 这个命令的-c ".setpdfwrite ... 部分似乎对我没有任何控制。压缩来自-dPDFSETTINGS=/prepress
  • 根据ghostscript(注9)印前ACS图像参数字典是:&lt;&lt; /QFactor 0.15 /Blend 1 /ColorTransform 1 /HSamples [1 1 1 1] /VSamples [1 1 1 1] &gt;&gt;,所以我注意到0.15与0.08的QFactor是主要区别。文件大小有区别吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-16
  • 2020-06-10
  • 1970-01-01
  • 2011-07-02
  • 2018-12-04
  • 2015-07-09
  • 1970-01-01
相关资源
最近更新 更多