我正在生成一个PDF,其中所有的图形都绘制在\DeviceRGB中的sRGB颜色空间。我想转换PDF到一个不同的颜色配置文件使用ICC配置文件和嵌入ICC配置文件,但我找不到一个很好的工具这样做。
我尝试过ImageMagick,但是这会使PDF变得不受欢迎,我也尝试过使用Ghostscript。但是,虽然这转换了颜色,但它没有嵌入ICC配置文件。
是否有任何工具或库(最好是Java或Scala)可用于Linux,以满足我的要求?
我尝试过的Ghostscript命令是:
gs -o cmyk.pdf -sColorConversionStrategy=CMYK -sDEVICE=pdfwrite \
-dOverrideICC=true -sOutputICCProfile=CoatedFOGRA27.icc \
-dRenderIntent=3 in.pdf
和
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -ColorConversionStrategy=CMYK \
-dProcessColorModel=/DeviceCMYK -sOutputICCProfile=CoatedFOGRA27.icc \
-sOutputFile=cmyk.pdf in.pdf
以及上面的几个变体。我已经尝试过Ghostscript版本9.10和9.16。
发布于 2015-07-23 16:41:13
使用Ghostscript v9.16或更高版本:
请阅读其有关ICC颜色配置文件支持的文档,可在此查阅:
这里有一个可能的命令来转换颜色空间并嵌入ICC配置文件:
gs -o cmyk-doc.pdf \
-sDEVICE=pdfwrite \
-dOverrideICC=true \
-sDefaultCMYKProfile=/path/to/mycmykprofile.icc \
-sOutputICCProfile=/path/to/mydeviceprofile.icc \
-dRenderIntent=3 \
-dDeviceGrayToK=true \
input-doc.pdf
(-dRenderIntent
:可能的参数是0
(感知)、1
(色度)、2
(饱和度)和3
(绝对比色))。
注意事项
如果您查看屏幕上的PDF文件(或打印时打印在纸上),则使用上述命令转换并使用:
你可能会失望。使用错误的ICC配置文件或与输出配置文件所期望的不匹配的纸张类型也会导致问题。
发布于 2019-07-08 19:36:39
AFAIU,Ghostscript 9.12-9.27无法实现您的期望。
但你也许能部分地实现你的目标:
UseDeviceIndependentColor
。
这不会嵌入您的配置文件,也不会将颜色转换为您的配置文件。但它将使您的颜色“色彩定义”,并将嵌入一些icc配置文件。如果你的目标是“保留”颜色,那可能对你有用。(我从来没有试过这个。)
玩具例子
原始档案:
gs命令:
gswin64c -dPDFX -dBATCH -dNOPAUSE -dHaveTransparency=false -r20
-dProcessColorModel=/DeviceCMYK -sColorConversionStrategy=UseDeviceIndependentColor
-sDefaultRGBProfile="default_rgb.icc" -sOutputICCProfile="cmyk_des_renderintent.icc"
-dRenderIntent=1 -dDefaultRenderingIntent=/Perceptual -sDEVICE=pdfwrite
-sOutputFile=colorbar_v1.pdf PDFX_IntCmyk.ps Colorbar.pdf
在Acrobat中,输出看起来是这样的(它尊重嵌入的“输出意图”icc配置文件):
Foxit Reader中的同一个文件(它忽略了嵌入的“输出意图”):
这里发生了什么:
-dHaveTransparency=false
确保第二页会被光栅化(因为有透明的tikz图片)-r20
确保栅格化清晰可见(因为只有20 due)-sOutputICCProfile="cmyk_des_renderintent.icc" -dRenderIntent=1
使光栅产生洋红输出。
-dDefaultRenderingIntent=/Perceptual
将表示的意图与“输出意图icc配置文件”一起放在元数据中。这使得Acrobat把所有的东西都画成了青色。-sDefaultRGBProfile="default_rgb.icc"
是用于输入icc配置文件的可能实验的占位符。如果省略此参数,则设置相同的默认值。
如果您知道您的输入配置文件是sRGB (但它不是嵌入式的- pdf是普通的\DefaultRGB
),那么在这里显式指定配置文件可能是个好主意。尽管sRGB是默认的。cmyk_des_renderintent.icc
嵌入为“输出意图”。您可以找到在这个实验中使用的所有文件这里。还有其他一些实验。我创造了他们,试图了解颜色管理如何在gs中工作。我希望他们能对这个问题有所了解。还有一个比较的Acrobat“转换颜色”工具。AFAIU,它做的和你期望的完全一样。
当涉及到用于pdf输出的颜色管理时,KenS (gs dev)通常是他说“pdfwrite设备会在输出中保持输入的颜色规格不变”。在这种情况下,他们似乎并没有真正关注从一个概要文件到另一个概要文件的转换。好吧..。这并不是“最需要的”功能。
https://stackoverflow.com/questions/31591554
复制相似问题