PDF:如何使用ghostscript修改PDF文件中的JPEG压缩

时间:2018-01-23 21:38:19

标签: pdf ghostscript

我希望减少pdf文件大小,不仅要减少图像DPI,还要改变JPEG压缩的质量设置。

首先我尝试了:

gs -dNOPAUSE -dQUIET -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS=/screen \ -dColorImageResolution=120 -dGrayImageResolution=120 \ -dUseFlateCompression=false -sOutputFile=test1.pdf \ -c "<< /GrayImageDict << /Blend 1 /VSamples [1 1 1 1] /QFactor 0.1 /HSamples [1 1 1 1] >> /ColorImageDict << /Blend 1 /VSamples [1 1 1 1] /QFactor 0.1 /HSamples [1 1 1 1] >> >> setdistillerparams " \ -f test.ps

其次我更改了Gray- / ColorImageDict条目并尝试:

gs -dNOPAUSE -dQUIET -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS=/screen \ -dColorImageResolution=120 -dGrayImageResolution=120 \ -dUseFlateCompression=false -sOutputFile=test2.pdf \ -c "<< /GrayImageDict << /Blend 1 /VSamples [2 1 1 2] /QFactor 2.4 /HSamples [2 1 1 2] >> /ColorImageDict << /Blend 1 /VSamples [2 1 1 2] /QFactor 2.4 /HSamples [2 1 1 2] >> >> setdistillerparams " \ -f test.ps

但两个命令的结果大小相同。

有什么建议是错误/误解或者如何增加JPEG压缩吗?

(版本:GPL Ghostscript 9.16)

感谢。

1 个答案:

答案 0 :(得分:0)

最好分享一个示例文件和命令留置权,以便其他人可以重现您的发现。没有它,就不可能说出为什么你会得到你的结果。

您的命令行并不理想。您使用过其中一个罐装PDFSETTINGS,如果我是你,我不会这样做。使用默认值并更改要更改的默认值。你已经混合了命令行开关和对setdistillerparams的PostScript调用。最好只使用setdistillerparams。

最可能的原因是您没有在输出中获取JPEG,请注意您尚未禁用自动过滤器选择。如distiller params文档中所述,UseFlateCompression仅影响页面压缩,而不影响图像,并且在任何情况下都会在Ghostscript中修复为true(请参阅Ghostscript文档)。将其设置为false不会做任何事情。

所以我建议您发布一个示例文件,然后从那里开始。

哦,你应该使用当前版本,9.16是2岁。