这与有关
- 将PDF转换为CMYK(带有识别CMYK的标识)
- 用脚本(或其他方式)将RGB转换为PDF格式的CMYK
但这里更具体一点:假设我有一个RGB PDF,其中文本颜色是"浓黑色"(R:0 G:0 B:0变为C:100 M:100 Y:100 K:100),以及各种图像和矢量图形。
我想使用一个免费的命令行工具将其转换为CMYK PDF(因此它可以在Linux下批量编写脚本),
- 在黑色(K)通道中只有内容:
- 保留矢量图形(+文本字形)-颜色仅在黑色(K)通道中变为灰度
- 图像仅转换为黑色(K)通道中的灰度
提前感谢您的回答,
干杯
正如我对@Mark Storer的评论中所暗示的,事实证明,只在CMYK的K版上强制打印灰色可能并不那么微不足道。。。我想这在很大程度上取决于什么被用作"预打印"预览设备——对于Linux,我唯一能找到的是ghostscript
和tiffsep
,这就是我用于CMYK分离的"健全性检查"。
无论如何,我在comp.lang.postscript
:上的这个线程中得到了很多帮助
- PDF到PDF(gs?):浓RGB黑色到纯K(CMYK)黑色?-comp.lang.postscript |谷歌群组
一个对我有效的工作流程是:
- 使用
ghostscript
的ps2write
将PDF转换为PS - 使用
ghostscript
将此PS转换回PDF,同时在HackRGB-cmyk-inv.PS中执行替换功能 - 使用
ghostscript
的tiffsep
检查实际分离
比如说,关于这个由OpenOffice:blah-slide.PDF生成的PDF,命令行是:
# PDF to PS using `ps2write` device of `ghostscript`
gs
-dNOPAUSE
-dBATCH
-sDEVICE=ps2write
-sOutputFile=./blah-slide-gsps2w.ps
./blah-slide.pdf
# PS to PDF using replacement function in HackRGB-cmyk-inv.ps
gs
-dNOPAUSE
-dBATCH
-sDEVICE=pdfwrite
-sOutputFile=./blah-slide-hackRGB-cmyk-inv.pdf
./HackRGB-cmyk-inv.ps
./blah-slide-gsps2w.ps
# check separations
gs
-dNOPAUSE
-dBATCH
-dSAFER
-sDEVICE=tiffsep
-dFirstPage=1
-dLastPage=1
-sOutputFile=p%02d.tif
blah-slide-hackRGB-cmyk-inv.pdf
&& eog p01.tif 2>/dev/null
这应该只适用于R=G=B的RGB值(希望是灰度值),也只适用于文本颜色,而且它还可以使文本信息变平-但应该可以通过tiffsep
确认文本确实只出现在K板上。
正如新闻组帖子中提到的,这还没有经过广泛的测试,但到目前为止看起来很有希望
干杯
作为对sdau出色答案的改进,我建议使用xpdf中的pdftops将pdf转换为ps,而不是ghostscript ps2write,因为后者会导致字体变为staircasey,据说无法准确保存原始pdf。通过放大生成的PDF的文本区域进行比较。
我建议您使用GS转换PDF两次。一次到灰度颜色空间,然后到CMYK。
我不确定它会起作用,但如果它不起作用,我会有点惊讶。G->CMYK听起来像是脑死亡的X -> 0 0 0 X
转换。至少如果你坚持使用"设备灰度"one_answers"设备CMYK",而不是一些校准的颜色空间,这会对事情进行这样那样的调整。