pdf - ghostscript:将 PDF 转换为灰色,为文本保留纯黑色
问题描述
我需要将 RGB PDF 转换为 CMYK/GRAY PDF。我使用以下命令行:
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite \
-dEmbedAllFonts=true \
-dPDFSETTINGS="/prepress" \
\
-sColorConversionStrategy=$2 \
-sColorConversionStrategyForImages=$2 \
-dProcessColorModel=$3 \
\
-dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode \
-dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode \
-dMonoImageFilter=/FlateEncode \
\
-dDownsampleColorImages=false \
-dDownsampleGrayImages=false \
-dDownsampleMonoImages=false \
其中 $3 是 /DeviceGray 或 DeviceCMYK,$2 是 CMYK 或 Gray。
不幸的是,文本处于灰色模式,只有 91% 黑色。在 CMYK 模式下,文本为 100% 黑色。如何在灰色模式下将文本设置为 100% 黑色?
我使用 GS 9.26 并且没有特殊的 ICC 配置文件。
解决方案
将文本保留为黑色时不能转换为灰色,它也会转换为灰色。
您可以提供一个 ICC prfile,它将 R=G=B=0 转换为 CIE 颜色,当通过 Gray ICC 配置文件映射回来时,会产生 100% 的灰色,这与(显然)与黑色相同。恐怕由您来决定合适的 ICC 配置文件。
使用当前版本的 Ghostscript,您在使用 ColorConversionStrategy 时不需要(也不应该)设置 ProcessColorModel,它会为您设置。
推荐阅读
- python - 如何在 tkinter 窗口中显示视频预览
- vbscript - VBS Application.Outlook 并发使用
- c# - 服务结构 - 更新静态配置文件
- java - 无法在 Spring Boot Batch 中使用 2 个数据源
- sql-server - 声明变量中的多个值
- php - html 内容为 .xlsx 的文件仅在 Firefox 中下载时无法正确获取文件名和扩展名?
- c# - 如何将文本框文本更改为字符串变量并将其发送到另一个类并在 sendkey 中使用
- spring-boot - 无法将 SpringBoot 连接到 docker 上的 redis-cluster
- bots - botium-cli连接smapi,无法连接技能,报错“UnhandledPromiseRejectionWarning
- javascript - 无法在 React 的 for 循环中获取递增值