如何强制 Ghostscript 使用 CMYK 颜色而不是 RGB 将 PDF 转换为单色位图?

How to force Ghostscript to convert PDF to monochrome bitmap using CMYK colors instead of RGB?

我有一个 PDF 文件,其中包含指定 CMYK 颜色为 0,0,0,100 的黑色文本。当我使用 ghostscript 将其转换为“bmpmono”时,它会将其解释为不是 100% 黑色。我发现 CMYK 0,0,0,100 实际上转换为大约 36,32,33 的 RGB 而不是我预期的 0,0,0(但已解释 here)。

我相信发生的事情是 ghostscript 将 CMYK 转换为 RGB,然后再转换为单色,所以我最终得到的是非全黑文本。有没有办法强制 ghostscript 坚持 CMYK 并直接转换为单色以保持 100% 黑色?

这是我的命令:

gswin64c.exe -dNOPAUSE -sDEVICE=bmpmono -dBATCH -dDEVICERESOLUTION=200 -sOutputFile=testout.bmp -f source.pdf

GS 将通过定义的 ICC 配置文件从 CMYK 转换为灰色。与 [0 0 0 100] 的 CMYK 值相比,存在更暗的 CMYK 值(对于 GS 定义的 CMYK 源配置文件 - 对于大多数)因此,[0 0 0 100] 最终被映射到不是灰色输出中最暗 space.

有几个选项可以尝试

-dUseFastColor

这将避免使用 ICC 配置文件进行颜色映射,并使用具有 UCR/BG 类型映射的老式 255-X。

另一种选择是使用

-dBlackText=true

这将强制所有文本组件(Type 3 字体除外)填充(或描边)灰度值 0,对于 bmpmono 设备应映射到 0。