我正在尝试连接多个 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 图像质量的正确命令是什么?
解决方案是使用以下命令调整 DCTDecode 过滤器:
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
这会生成一个质量令我满意的压缩文件,并且可以根据每个人的需求进行调整。
Edit:
the .setpdfwrite
最近的 Ghostscript 版本(> 9.50)已弃用该参数,因此我在答案中将其删除
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)