如何避免GhostScript修复PDF时将PNG图片转换为JPEG格式
避免Ghostscript修复PDF时PNG转JPEG画质损失的解决方案
我刚好碰到过一模一样的问题!你遇到的PNG被转成JPEG导致画质损失,根源是-dPDFSETTINGS=/default这个参数会触发Ghostscript自动对图像进行有损压缩优化,把原本无损的PNG位图转换成JPEG格式。要避免这种转换,只需要在命令中添加几个关键参数,强制Ghostscript保留无损图像格式:
核心参数说明
-dAutoFilterColorImages=false:禁用彩色图像的自动压缩过滤,阻止Ghostscript自动选择JPEG压缩-dAutoFilterGrayImages=false:同理,关闭灰度图像的自动压缩逻辑-dColorImageFilter=/FlateEncode:指定彩色图像使用Flate无损压缩(和PNG的核心压缩算法一致)-dGrayImageFilter=/FlateEncode:灰度图像同样采用Flate无损压缩-dMonoImageFilter=/FlateEncode:单色图像也保留无损压缩格式-dPreserveTransparency=true:如果你的PNG带有透明通道,一定要加这个参数,确保透明信息不会丢失
完整修复命令
gs -o repaired.pdf -sDEVICE=pdfwrite -dPDFSETTINGS=/default -dAutoFilterColorImages=false -dAutoFilterGrayImages=false -dColorImageFilter=/FlateEncode -dGrayImageFilter=/FlateEncode -dMonoImageFilter=/FlateEncode -dPreserveTransparency=true corrupted.pdf
额外提示
如果不需要/default预设里的其他优化(比如字体嵌入、页面裁剪等),也可以去掉-dPDFSETTINGS=/default,只保留上面的图像相关参数,这样修复后的PDF会更贴近原始文件的结构,同时依然能解决损坏问题。
内容的提问来源于stack exchange,提问作者Paolo
相关产品推荐
相关产品推荐

