将CMYK PDF转换成专色。

3
有没有可能对CMYK格式的PDF进行批量预处理,将其分离成专色?
我有一组CMYK格式的PDF,但我需要它们以2种专色格式呈现。
这两种颜色是红色和黑色。 黑色(K)没问题,但红色专色需要将洋红色和黄色合并。
这是可能的吗? 我希望能够根据给定的颜色分离专色,而不是合并颜色,因为这样非常受限。
我查看了Adobe Acrobat X Pro,但似乎没有我想要的功能。 对于我拥有的大量PDF,我可以在Photoshop中手动完成此过程,但这将是一个冗长的过程。

我不确定我理解你的最终目标是什么。您有一个具有多种颜色的 .pdf 文件,并希望获得其中的2种颜色。当您说分离时,您是指输出2个黑白膜片吗?我刚刚回答了另一个关于重新定义 postscript 运算符的问题。似乎可以使用类似的技术来重新定义 setgray、setrgbcolor 和/或 setcmykcolor 以重新定义颜色。 [链接]http://stackoverflow.com/questions/14856981/ghostscript-postscript-pswrite-is-encoding-text/14888816#14888816 - Fred F
我来试着给一个简单的例子:我有一个生成的PDF文件,它是RGB格式的(但最终在PDF中只有红色文本和黑色文本)。红色和黑色是PDF内部的RGB元素组成的。如果我将其预检为CMYK格式,那么它就会变成K=全黑文本 M+Y=红色文本我想要的是将其预检为PDF油墨管理器显示C=空 Y=空 M=空 K=黑色 [特定红色]=红色 - TheStoneFox
我仍然不确定你想要达到什么目的或者你所受限于哪些参数。Postscript允许使用有意定义的setcmyk重新定义setrgbcolor,但这样的操作在Postscript中是不自然的。如果上下文允许用户先发送一个定义好的标题,那么很容易实现。如果你能为操作定义一个特定的页面大小,那么也很容易实现。如果你不介意重启RIP,那么也很容易实现。但如果你期望魔法就这么发生,那么在我们的世界里这是不可能的。在以前的工作中,我有一些地图是以红色设计的,但每个版本都需要使用不同颜色来打印。这是可以做到的。 - Fred F
我仍然不清楚您所期望的最终结果是什么。 - Fred F
结果是将由RGB过程组成颜色的PDF转换为仅由2种颜色(在这种情况下为黑色油墨和红色油墨)组成的最终PDF油墨分解。因此,如果您要从PDF制作印刷版,您将获得黑色的实心版和红色的实心版(即红色不由CMYK或RGB颜色组成)。 - TheStoneFox
2个回答

1
我猜想这个问题早已解决,但为了完整起见,可以做到。实际上有许多商业工具可以轻松地完成这项工作。
1)如果我没记错的话,最新版的Adobe Acrobat比以前的版本包含更多PDF文件校正功能,这意味着它应该能够做到这一点。
2)还有像callas pdfToolbox(警告,我与此公司/产品有关)这样的工具,可以以任何你想要的方式预处理PDF文件。
总的来说,我认为第一个问题应该是为什么要进行RGB到CMYK的步骤 - 能够做到这种重新映射的工具同样能够直接从黑色和红色RGB转换为两种命名的专色,避免不必要的CMYK转换。
顺便说一句,如果你想获得一个PDF,你可以轻松地切换一个颜色(例如隐藏正确答案),可能有更好的方法。例如将所有红色文本放在一个图层上,而将所有黑色文本放在另一个图层上(或者PDF称之为OCG-可选内容组)。这将使你能够随意切换彩色文本,即使在类似Adobe Reader的软件中也是如此。

谢谢您的回复,但是还没有得到一个可行(简单)的解决方案。您是否能够在答案中提供逐步指南的步骤,以便我可以跟随步骤并实现目标,无论是在Acrobat或Pitstop中?我需要它们是CMYK +专色,因为最终将在平版印刷中打印,所以RGB +专色对此没有好处。非常感谢 - TheStoneFox
我在Adobe Acrobat Professional XI中未能实现我的目标,似乎找不到如何做到的方法。如果您能在回答中概述如何在Adobe Acrobat或Pitstop中实现我的目标,我将不胜感激。如果我能通过提供的答案实现我的目标,那么我将接受答案并将其标记为已解决。 - TheStoneFox
我已经下载了PDFToolbox的桌面版,在Fixups菜单中有一个选项可以替换CMYK颜色(通过提供CMYK分解值和模糊匹配的容差),然后选择要替换的颜色(在我的情况下是一个命名的颜色点红色,带有回退的CMYK值)。因此,您可以在PDFToolbox中完成此操作,但在Acrobat Professional XI中似乎无法完成。我将把这个标记为答案。 - TheStoneFox
我尝试了不同的选项和不同的程序,包括建议的程序,但我未能将PDF文档从黑色和CMYK = 1,0,0,0更改为K和任意专色。 - Pygmalion
如果您有示例文档,我很乐意查看。 - David van Driessche

0

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

通过发送exitserver后置代码将例程安装在rip中。对于PC,可以使用DOS复制命令将其发送到打印机共享。还有一些sendps程序可以在网络上找到,可以将文件发送到设备。

copy redef1.ps \\127.0.0.1\psprinter

这个 exitserver 程序定义了一个 /setcmykcolor 函数在 userdict 中,并优先于系统字典中的 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

输出将仅显示“黑色”或“非黑色”,但文字会重叠,因此您将看到未打印颜色的幽灵图像。

这是一个退出服务器,用于恢复RIP以使用正常的setcmykcolor。

%!
serverdict begin 0 exitserver
userdict /setcmykcolor undef 

正如一開始所述,這是一個簡單的實現,例如允許黑色和非黑色的色調。還可以有變化的顏色,其中少量的黑色混合顏色可能會欺騙簡單程序,使得暗紅色0.87.75.1 setcmykcolor被定義為黑色,而實際上它應該是非黑色的。

这是一个非常专业的回答!我原本希望得到的是类似于...你可以在ghostscript中这样做之类的 :) - TheStoneFox
我从未见过有人使用ghostscript输出盘片。 :P 答案代表了postscript分离颜色的通用方法,其中标准方法被重新定义为修改后的方法。对于ghostscript,这15行将被复制到文件中,退出服务器行将被删除,并且2个文件将被发送到ghostscript“onlyblack.ps yourfile.pdf”和“notblack.ps yourfile.pdf”。这将产生黑白输出。如果您想从ghostscript获得RGB文件,则需要不同的标题。答案并不是很难,它就是postscript! - Fred F
虽然这是一个很好的答案,但对我来说有点太技术性了,所以我选择了PDFToolbox解决方案。 - TheStoneFox

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接