Convert CMYK PDF to Spot Colors (Colors)

Can you preprocess (batch) CMYK PDF files to separate into spot colors?

I have a collection of PDFs that are in CMYK, but I require them to be in two color format.

The colors are red and black. The black (K) is fine, but the red spot should be a fusion of magenta and yellow.

Is this even possible? I would prefer something that could separate spots based on a given color rather than merging colors as this becomes very limited.

I looked in adobe acrobat X pro and it doesn't seem to do what I want. I could probably do it manually in Photoshop, but it would be a long process for a lot of PDFs I have.

+3


source to share


2 answers


I assume this problem has been solved long ago, but just for completeness; yes it can be done. There are a number of commercial tools that do this very easily.

1) If I'm not mistaken, the latest version of Adobe Acrobat actually contains a lot more options for fixing PDFs than previous versions, which means it should be able to do just that.



2) There are tools like callas pdfToolbox (warning, I'm associated with this company / product) that can preprocess a PDF file in almost any way you want.

Overall, while I think the first question will be why you go through the RGB step to CMYK - tools that can do this kind of remapping will equally be able to just go from RGB black and red to the two named spot colors, avoiding the unnecessary CMYK conversion.

By the way, if you are trying to get this is a PDF where you can easily change one color (for example to hide the correct answers) there are probably better ways to do it. For example, for example, put all the red text on one layer, putting all the black text on another layer (or OCG - an optional content group as the PDF calls them). This will give you the ability to turn colored text on and off as you see fit, even for Adobe Reader.
+1


source


This is a simple implementation that will print solid black or anything that is not black. Depending on your needs, you may need to complicate things. Knowing no more, I followed the brute force approach of using exitserver. exitserver allows you to override the default RIP operation. To restore the RIP to normal, you need to reload the rip or write another exit server routine to undo the server modification.

The subroutine is installed in the rip by sending the postscript code to exitserver. For PCs, this can be done using the DOS Copy to Printer Share command. There are also sendps programs that can be found on the Internet to send a file to a device.

copy redef1.ps \\127.0.0.1\psprinter

      

This exitserver routine defines the / setcmykcolor function in the userdict, which will take precedence over setcmykcolor in the system dict. there will be 4 numbers on the stack, with black as the last. The inverse is duplicated and compared to zero. If black is not zero the black block will be executed, otherwise the non-black will be executed. 0 setgray = black and 1 setgray = white, since the box exists below, black will print as black and everything else will print as white.

%!
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

      

By canceling the setgray value, black will not be printed and everything else will be "not black".

%!
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

      



It doesn't matter which program you are printing from. whichever version of exitserver is last loaded, the exit will be displayed.

Here is a simple example .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

      

The output will only show "black" or "not black", but text overlays, so you will see a ghost image of a color that does not print.

This is the exitserver to restore the RIP to use normal setcmykcolor

%!
serverdict begin 0 exitserver
userdict /setcmykcolor undef 

      

As said at the beginning, this is a simple implementation such as resolving shades of black and non-black. There could also be color variations where small amounts of black mixed with a color can fool the simple routine where a dark red 0.87.75.1 setcmykcolor would be defined as black, where it probably should be non-black.

0


source







All Articles