tri*_*bol 5 pdf-generation ghostscript
我正在尝试连接多个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
Run Code Online (Sandbox Code Playgroud)
但是,似乎-dJPEGQ = 100对输出没有影响。更改此参数将导致相同的文件大小,并且在所有值的图像中都可以看到伪像。使用-dPDFSETTINGS = / printer选项运行命令可以获得更好的结果,没有伪影,但是此选项也应产生300 dpi。那么在输出文件中指定jpg图像质量的正确命令是什么?
解决方案是使用以下命令调整 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
Run Code Online (Sandbox Code Playgroud)
这导致我得到一个质量令人满意的压缩文件,并且可以根据每个人的需要进行调整。