【问题标题】:How to modify JPEG compression in PDF files using ghostscript如何使用 ghostscript 修改 PDF 文件中的 JPEG 压缩
【发布时间】:2018-01-23 21:38:18
【问题描述】:

我想减小 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)

【问题讨论】:

    标签: pdf ghostscript


    【解决方案1】:

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

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

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

    所以我建议你发布一个示例文件,我们从那里获取它。

    哦,你应该使用当前版本,9.16 已经 2 岁了。

    【讨论】:

    • 关键提示是“自动过滤器选择”。因此,添加/AutoFilterColorImage false 或将/ColorImageDict 更改为/ColorACSImageDict 都会使命令按预期工作。
    • 感谢您的发布,我对我所说的有帮助的内容感到困惑:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多