将CMYK PDF转换为专色(颜色)

将CMYK PDF转换为专色(颜色),pdf,printing,cmyk,preflight,Pdf,Printing,Cmyk,Preflight,是否可以对CMYK格式的PDF进行预处理(分批)以分离出专色 我有一个在CMYK的PDF收集,但我要求他们在一个2专色格式 颜色是红色和黑色。黑色(K)很好,但红色斑点需要是品红和黄色的合并 这可能吗?我更喜欢能够根据给定颜色分离斑点的东西,而不是合并颜色,因为这会变得非常有限 我在adobe acrobat X pro中查看过,但这似乎并不是我想要的。我可能可以在photoshop中手动完成,但对于我拥有的大量PDF来说,这将是一个冗长的过程。这是一个简单的实现,可以打印纯黑色或任何非黑色的内

是否可以对CMYK格式的PDF进行预处理(分批)以分离出专色

我有一个在CMYK的PDF收集,但我要求他们在一个2专色格式

颜色是红色和黑色。黑色(K)很好,但红色斑点需要是品红和黄色的合并

这可能吗?我更喜欢能够根据给定颜色分离斑点的东西,而不是合并颜色,因为这会变得非常有限


我在adobe acrobat X pro中查看过,但这似乎并不是我想要的。我可能可以在photoshop中手动完成,但对于我拥有的大量PDF来说,这将是一个冗长的过程。

这是一个简单的实现,可以打印纯黑色或任何非黑色的内容。根据您的需要,它可能需要变得更复杂。在不知道更多的情况下,我采用了使用exitserver的蛮力方法。exitserver允许重新定义RIP的默认操作。要将RIP恢复到其正常操作,您需要重新启动RIP或编写另一个退出服务器例程以取消定义服务器修改

该例程通过发送exitserver postscript代码安装在rip中。对于PC,这可以通过DOS复制命令到打印机共享来完成。还可以在web上找到sendps程序,用于将文件发送到设备

copy redef1.ps \\127.0.0.1\psprinter
此exitserver例程在userdict中定义一个/setcmykcolor函数,该函数优先于系统dict中的setcmykcolor。堆栈上有4个数字,其中最后一个为黑色。返回值被复制并与零进行比较。如果黑色不为零,将执行黑色块,否则将执行非黑色块。0 setgray=黑色,1 setgray=白色,因此当下面的块存在时,黑色将打印为黑色,其他所有内容将打印为白色

%!
serverdict begin 0 exitserver
userdict begin /setcmykcolor 
{
    dup 0 ne
    {
        %black
        0 setgray
        pop pop pop pop
    }
    {
        %not black
        1 setgray
        pop pop pop pop
    }ifelse
} def end
通过反转setgray的值,黑色将不打印,其他所有“非黑色”都将打印

%!
serverdict begin 0 exitserver
userdict begin /setcmykcolor 
{
    dup 0 ne
    {
        %black
        1 setgray
        pop pop pop pop
    }
    {
        %not black
        0 setgray
        pop pop pop pop
    }ifelse
} def end
不管你用什么程序打印。最后加载exitserver的哪个版本将是输出的打印方式

下面是一个简单的.ps示例

%!PS-Adobe-3.0 
%%Title: mwe.ps
%%Pages: 001
%%BoundingBox: 0 0 595 842
%%EndComments
%%Page: 1 1
%%PageBoundingBox: 0 0 595 842
/Times-Roman findfont 72 scalefont setfont
0 0 0 1 setcmykcolor
0 20 moveto (black) show
0 1 0 0 setcmykcolor
0 40 moveto (not black) show
0 0 0 1 setcmykcolor
0 60 moveto (black) show
1 0 0 0 setcmykcolor
0 80 moveto (not black) show
0 0 0 1 setcmykcolor
0 100 moveto (black) show
0 1 1 0 setcmykcolor
0 120 moveto (not black) show

showpage
输出将仅显示“黑色”或“非黑色”,但文本套印,因此您将看到不打印的任何颜色的重影图像

这是一个exitserver,用于恢复RIP以使用正常的setcmykcolor

%!
serverdict begin 0 exitserver
userdict /setcmykcolor undef 

如开始所述,这是一个简单的实现,例如允许黑色和非黑色的色调也可能有颜色的变化,其中少量的黑色与颜色混合可能会愚弄简单的例程,其中暗红色0.87.75.1 setcmykcolor将被定义为黑色,而它可能不应该是黑色

我猜这个问题早就解决了,但只是为了完整性;是的,这是可以做到的。实际上,有许多商业工具可以很容易地做到这一点

1) 如果我没有弄错的话,Adobe Acrobat的最新版本实际上比以前的版本包含更多的PDF文件更正可能性,这意味着它应该能够做到这一点

2) 有一些像callas pdfToolbox(警告,我是这家公司/产品的附属公司)这样的工具,可以按照您想要的任何方式预处理PDF文件

总的来说,虽然我认为第一个问题是为什么要经历RGB到CMYK的步骤-可以进行这种重新映射的工具同样能够简单地从黑色和红色RGB直接到两种指定的专色,避免不必要的CMYK转换


顺便说一句,如果你想得到的是一个PDF,你可以很容易地关闭一种颜色(例如隐藏正确的答案),可能有更好的方法来做到这一点。例如,将所有的红色文本放在一个图层上,而将所有的黑色文本放在另一个图层上(或者OCG——PDF调用的可选内容组)。这将使您能够随意打开或关闭彩色文本,即使在Adobe Reader之类的软件中也是如此。

我不确定我是否理解您的最终目标。你有一个.pdf,它有多种颜色,你想要两种颜色。当你说分开时,你是说输出2张黑白电影吗?我刚刚回答了另一个关于重新定义postscript操作符的postscript问题。似乎可以使用类似的技术来重新定义setgray、setrgbcolor和/或setcmykcolor以重新定义颜色。[链接]我将尝试给出一个简单的例子:我生成了一个PDF,它是RGB(但最终它只是PDF中的红色文本和黑色文本)。红色和黑色由PDF中的RGB元素组成。如果我将它预发到CMYK,它将变成K=全部黑色文本M+Y=红色文本。我想要的是预发它,因此PDF墨水管理器显示C=empty Y=empty M=empty K=black[spot Red]=redI仍然不确定您尝试获取的位置或限制了哪些参数。Postscript允许使用专门定义的setcmyk重新定义setrgbcolor,但这种操作对Postscript来说是不自然的。如果上下文允许首先发送用户定义的头,那么就很容易了。如果您可以为操作定义特定的页面大小,那么就很容易了。如果您不介意重新启动RIP,这很容易。但是如果你期待魔法的发生,魔法在我们的世界里是不可能的。在过去的一份工作中,我有用红色设计的地图,但每个版本都需要不同的颜色来打印。这是可以做到的。我仍然不知道你想要的最终结果是什么。结果是得到一个颜色由RGB过程组成的PDF,并且最终的PDF墨水分解仅由两种颜色组成(在本例中为黑色墨水和红色墨水)因此,如果你要用PDF制作印刷版,你会得到一个黑色的实心版和一个红色的实心版(即红色不是由CMYK或RGB颜色组成),这是一个核心答案!我希望能有类似于。。