将(任意)PDF转换为黑色(K)-仅限CMYK

将(任意)PDF转换为黑色(K)-仅限CMYK,pdf,cmyk,Pdf,Cmyk,这与: 。。。但这里更具体一点:假设我有一个RGB PDF,其中文本颜色是“浓黑色”(R:0G:0B:0变成C:100M:100Y:100K:100),还有各种各样的图像和矢量图形 我想使用一个免费的命令行工具(因此它在Linux下可以批量编写脚本)将其转换为CMYK PDF 仅在黑色(K)通道中有内容: 保留矢量图形(+文本图示符)-颜色仅在黑色(K)通道中变为灰度 图像仅在黑色(K)通道中转换为灰度 提前感谢您的回答, 干杯 我建议您使用GS转换PDF两次。一次到灰色的色调空

这与:

。。。但这里更具体一点:假设我有一个RGB PDF,其中文本颜色是“浓黑色”(R:0G:0B:0变成C:100M:100Y:100K:100),还有各种各样的图像和矢量图形

我想使用一个免费的命令行工具(因此它在Linux下可以批量编写脚本)将其转换为CMYK PDF

  • 仅在黑色(K)通道中有内容:
    • 保留矢量图形(+文本图示符)-颜色仅在黑色(K)通道中变为灰度
    • 图像仅在黑色(K)通道中转换为灰度
提前感谢您的回答,

干杯

我建议您使用GS转换PDF两次。一次到灰色的色调空间,然后到CMYK


我不确定它是否有效,但如果不起作用,我会有点惊讶。G->CMYK听起来像是脑死亡的转换。至少如果你坚持使用“device gray”和“device CMYK”,而不是一些经过校准的颜色空间,它们会这样那样调整事物。

正如我在对@Mark Storer的评论中所暗示的那样,强制只在CMYK中的K板上打印灰色可能不是那么简单。。。我想这在很大程度上取决于什么被用作“飞行前”预览设备-对于Linux,我能找到的唯一东西就是
ghostscript
tiffsep
,这就是我用来检查CMYK分离的“健全性”

无论如何,我在
comp.lang.postscript
上得到了很多帮助:

。。。一个适合我的工作流程是:

  • 使用
    ghostscript
    ps2write
  • 使用
    ghostscript
    将此PS转换回PDF,同时在中执行替换函数
  • 使用
    ghostscript
    tiffsep
    检查实际分离

例如,对于OpenOffice生成的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伟大答案的改进,我可以建议使用pdftops from将pdf转换为ps,而不是ghostscript ps2write,因为后者会导致字体变为阶梯状,据说无法准确保留原始pdf。通过放大结果PDF的文本区域进行比较。

Hi@Mark Storer,谢谢您的回答!我猜,证明G->CMYK转换可能是哪个设备渲染最终显示的问题;我将
gs
tiffsep
一起用于(我猜是)“飞行前”,通常,只要一个RGB->G->CMYK就会在所有四个图版上显示黑色文本,就像查看原始RGB“飞行前”时一样。不过,我在
comp.lang.postscript
上得到了一些答案,我将在下一篇文章中发布这些答案……非常感谢您的回答,@Ole-很高兴在这里有其他答案。。。干杯