如何在负片解码后将 CMYK PDF 重新导入 Adob​​e(Illustrator/Photshop 等)[ 0 1 ]

How to reimport CMYK PDF into Adobe (Illustrator/Photshop etc) after Negative Decode [ 0 1 ]

我有一个由 InDesign 创建的 pdf,我想在 postscript 中重新创建它。

以下脚本使用负解码数组按预期创建我的(简单)pdf。在 pdf 阅读器中看起来很棒(正如预期的那样),但是,当我在 Illustrator 或其他 Adob​​e 产品中重新打开它时,JPG 变成负片。

  << /PageSize [419.528 595.276] >> setpagedevice 
    % [ W x H ] 
    /DeviceCMYK setcolorspace 
    % Page 1 

    %
    % Set the Original to be the top left
    %
    0 595.276 translate 
    1 -1 scale 
    gsave 


    %% Images when flipped to draw correctly are scaled UPWARDS 
%% so you need to move the x,y position to the bottom left

-1.44 621.714330709 translate % Bottom Left Cordinates

% unset the mirror or the image will be flipped!
1 -1 scale 

% scale the image
438.000944882 657.119055118 scale  %%% Need to work out size and width into Units


/Image1File (cmyk_image.jpg) (r) file /DCTDecode filter  def

/Image1
{
<<
  /ImageType 1
  /Width 1825
  /Height 2738
  /ImageMatrix [1825 0 0 -2738 0 2738]
  /BitsPerComponent 8
  /Decode [1 0 1 0 1 0 1 0] % can either be 1 0 or 0 1
  /DataSource Image1File
>>
} bind def

/DeviceCMYK setcolorspace
Image1 image

% Reset to previous X and Y ( line 13 )
grestore 
gsave

showpage 

我知道这是由于 Adob​​e 反转其解码值的方式,但我还没有遇到一个实际的解决方案,外部库可以创建一个可以在 Adob​​e 的节目中重复使用的 pdf。

附件是有问题的 JPG。

cmyk_image

要执行到上面的命令 script.ps

gs -o output.pdf -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 -dPDFSETTINGS=/prepress input.ps

CMYK image and Issue PDF.zip

很难对您的问题给出准确的答案,但我会尽力而为。简而言之,我会投票将此记录为针对 Adob​​e Illustrator 的错误,并且这是您问题的唯一可能答案。

我打开了你的 PDF 文件,它看起来非常完美,没有任何问题。 Apple Preview、Adobe Acrobat DC、Adobe Photoshop CC 2014 都可以正确打开并正确显示图像。我发现唯一行为不正确的应用程序是 Adob​​e Illustrator(我测试了最新的 CC 2014 版本,因此我们可以假设它是 Illustrator 的 所有 版本)。

事实上,您甚至可以争论这是 Illustrator 中的错误还是根本不受支持。 Illustrator - 与流行的看法相反 - 不是 PDF 编辑器,也不支持 PDF 规范的完整性。 Illustrator 使用的文件格式也不是 PDF;它充其量只是 PDF 的一个子集,而且说实话,Illustrator 玩了一个非常肮脏的把戏来确保往返并确保它始终能够使用它导出的 PDF 文件。

所以:

  • 我不相信你的说法 "or other Adobe applications" 是正确的或仍然是正确的(例如,旧版本的 Photoshop 完全有可能有同样的问题)。
  • 我认为您的 PDF 文件没有问题; Illustrator 有问题(并且您认为您可以使用 Illustrator 打开任何随机 PDF 文件而不会降级:-))。

我完全同意上面 David 提出的观点,尤其是您不能将 Illustrator 用作一般的 PDF 编辑应用程序这一事实。

但是,由于这 一个编程问题...这里是按照我上面的评论中提示修改的代码。这使用过程数据源在读取数据时反转数据。这避免了对 'unusual' 解码数组的需要,我认为这意味着它可以与 Illustrator 一起使用(我没有副本,因此无法检查)。

  << /PageSize [419.528 595.276] >> setpagedevice 
    % [ W x H ] 
    /DeviceCMYK setcolorspace 
    % Page 1 

    %
    % Set the Original to be the top left
    %
    0 595.276 translate 
    1 -1 scale 
    gsave 


    %% Images when flipped to draw correctly are scaled UPWARDS 
%% so you need to move the x,y position to the bottom left

-1.44 621.714330709 translate % Bottom Left Cordinates

% unset the mirror or the image will be flipped!
1 -1 scale 

% scale the image
438.000944882 657.119055118 scale  %%% Need to work out size and width into Units


/Image1File (d:/temp/cmyk_image.jpg) (r) file /DCTDecode filter  def

/Image1
{
<<
  /ImageType 1
  /Width 1825
  /Height 2738
  /ImageMatrix [1825 0 0 -2738 0 2738]
  /BitsPerComponent 8
  /ColorTransform 1
%  /Decode [1 0 1 0 1 0 1 0] % can either be 1 0 or 0 1
  /Decode [0 1 0 1 0 1 0 1] % can either be 1 0 or 0 1
%  /DataSource Image1File
  /DataSource {
Image1File 1825 string readstring pop
0 1 1824 {
1 index exch
dup 2 index exch get 255 exch sub put
} for
}
>>
} bind def

/DeviceCMYK setcolorspace
Image1 image

% Reset to previous X and Y ( line 13 )
grestore 
gsave

showpage