我曾经按照以下代码来转换带有 rgb 图片的 pdf:
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite
-dEmbedAllFonts=true
-dPDFSETTINGS="/prepress"
-sColorConversionStrategy=Gray
-dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode
-dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode
-dMonoImageFilter=/FlateEncode
-dDownsampleColorImages=false
-dDownsampleGrayImages=false
-dDownsampleMonoImages=false
-sOutputFile=$4
-f "$1"
使用此代码不会更改为该图片的颜色模式。
如果在使用 gs 将包含的图片转换为灰色(它是使用 inkscape 修改并另存为 rgb 的 pdf)之前,在使用乳胶创建 pdf 之前,它可以工作。
使用的 GS 版本是 9.26。 已使用数据的链接:
- 包含的图片:PDF
- 创建乳胶后: .pdf
- 到灰色转换的pdf,这会产生问题: .pdf
查看"灰色转换的pdf"文件,我看到内容完全在DeviceGray中。那你为什么认为它不是呢?您如何确定"颜色模式"?
PDF文件确实包含透明度(毫无意义,但那是你的开罗),并且具有DeviceRGB混合模式。这不是Ghostscript的pdfwrite可以改变的东西,如果它改变了混合模式,那么输出可能会发生坏事。