如何在PDF中转储嵌入的ICC配置文件信息? (命令行或GUI工具)

时间:2013-07-19 07:15:59

标签: pdf adobe-illustrator color-profile color-management

命令行或GUI工具来转储有关ICC配置文件/颜色转换的信息,这些信息是在Illustrator的PDF导出对话框中设置的“颜色管理和PDF的PDF / X选项”选项吗? / p>


Illustrator的“颜色管理和PDF / PDF / X选项”选项

[image] http://blogs.adobe.com/vikrant/files/2012/05/grayscale_export.png

[manual] http://help.adobe.com/en_US/illustrator/cs/using/WS714a382cdf7d304e7e07d0100196cbc5f-6547a.html#WS714a382cdf7d304e7e07d0100196cbc5f-6540a

2 个答案:

答案 0 :(得分:8)

这是一个基于命令行的方法,用于从PDF中提取ICC颜色配置文件。它使用安全研究员Didier Stevens编写的Python脚本 pdf-parser.py ,您可以download here

但是,此工具不是用于ICC提取的专用工具。 (我不知道这样的工具。)它是一个用于研究PDF文件的通用命令行工具。

因此,您需要执行各种步骤才能实现提取。

步骤1:确定ICC配置文件的PDF对象ID

您必须使用-s来搜索字符串ICCBased。 (没有嵌入式ICC配置文件的PDF文件将不具有此关键字[除了可能在其文本内容中使用它...]。

pdf-parser -s ICCBased my.pdf

我的测试PDF返回了这个:

obj 18 0
 Type: 
 Referencing: 21 0 R

似乎可以在PDF对象21中找到ICC配置文件。

步骤2:查看步骤1中找到的PDF对象

您必须使用-o 21查看PDF对象21是什么:

pdf-parser.py -o 21 my.pdf

我的测试PDF会返回:

obj 21 0
 Type: 
 Referencing: 
 Contains stream

  <<
    /Alternate /DeviceRGB
    /Filter /FlateDecode
    /Length 2574
    /N 3
  >>

好的,这看起来我们正在接近......

步骤3:转储包含配置文件

的PDF对象中包含的流

在第2步中,我们获得了两个重要的信息:

  • PDF对象21包含一个流(使用-o 21的{​​{1}}参数未显示其内容。
  • 必须使用pdf-parser.py对对象流进行解压缩才能获取其内容。

因此我们现在必须使用另外两个参数运行/FlateDecode

  • pdf-parser.py ,以便将PDF对象21的流转储到文件中。
  • -d filename ,以便在将对象流转储到文件时过滤/取消压缩对象流。
  • 要运行的命令: -f

第4步:验证提取的内容

我们现在已将PDF对象21的流转储到名为pdf-parser.py -o 21 -f -d 21.stream my.pdf的文件中。让我们看看它包含的内容:

21.stream

看起来我们成功了。 : - )

步骤5:打开颜色配置文件

我会看看我的Mac OSX系统是否接受此配置文件:

file 21.stream
 21.stream: Microsoft ICM Color Profile

OSX使用'Color Sync Utility'打开文件并显示一个窗口。单击列表条目将在窗口底部打开不同的信息窗格:

Mac OSX  'Color Sync Utility' showing various infos about the extracted ICM profile.

步骤6:使用Argyll的mv 21.stream 21.icm open 21.icm 将ICC配置文件的内容转储为文本

请注意,Graeme Gill的 ArgyllCMS 是适用于Linux,Mac OSX和Windows的开源色彩管理软件,附带一整套命令行工具。其中之一是iccdump。我们可以用它来查看新赢的iccdump文件的属性:

iccdump 21.icm

icc:
Header:
  size         = 3144 bytes
  CMM          = 'Lino'
  Version      = 2.1.0
  Device Class = Display
  Color Space  = RGB
  Conn. Space  = XYZ
  Date, Time   = 9 Feb 1998, 6:49:00
  Platform     = Microsoft
  Flags        = Not Embedded Profile, Use anywhere
  Dev. Mnfctr. = 'IEC '
  Dev. Model   = 'sRGB'
  Dev. Attrbts = Reflective, Glossy
  Rndrng Intnt = Perceptual
  Illuminant   = 0.964203, 1.000000, 0.824905    [Lab 100.000000, 0.000498, -0.000436]
  Creator      = 'HP  '

tag 0:
  sig      'cprt'
  type     'text'
  offset   336
  size     51
Text:
  No. chars = 43
    0x0000: Copyright (c) 1998 Hewlett-Packard Company

tag 1:
  sig      'desc'
  type     'desc'
  offset   388
  size     108
TextDescription:
  ASCII data, length 18 chars:
    0x0000: sRGB IEC61966-2.1
  No Unicode data
  ScriptCode Data, Code 0x0, length 18 chars
    0x0000: 73 52 47 42 20 49 45 43 36 31 39 36 36 2d 32 2e 31 00 

tag 2:
  sig      'wtpt'
  type     'XYZ '
  offset   496
  size     20
XYZArray:
  No. elements = 1

tag 3:
  sig      'bkpt'
  type     'XYZ '
  offset   516
  size     20
XYZArray:
  No. elements = 1

tag 4:
  sig      'rXYZ'
  type     'XYZ '
  offset   536
  size     20
XYZArray:
  No. elements = 1

tag 5:
  sig      'gXYZ'
  type     'XYZ '
  offset   556
  size     20
XYZArray:
  No. elements = 1

tag 6:
  sig      'bXYZ'
  type     'XYZ '
  offset   576
  size     20
XYZArray:
  No. elements = 1

tag 7:
  sig      'dmnd'
  type     'desc'
  offset   596
  size     112
TextDescription:
  ASCII data, length 22 chars:
    0x0000: IEC http://www.iec.ch
  No Unicode data
  ScriptCode Data, Code 0x0, length 22 chars
    0x0000: 49 45 43 20 68 74 74 70 3a 2f 2f 77 77 77 2e 69 65 63 2e 63 68 00 

tag 8:
  sig      'dmdd'
  type     'desc'
  offset   708
  size     136
TextDescription:
  ASCII data, length 46 chars:
    0x0000: IEC 61966-2.1 Default RGB colour space - sRGB
  No Unicode data
  ScriptCode Data, Code 0x0, length 46 chars
    0x0000: 49 45 43 20 36 31 39 36 36 2d 32 2e 31 20 44 65 66 61 75 6c 74 20 
...

tag 9:
  sig      'vued'
  type     'desc'
  offset   844
  size     134
TextDescription:
  ASCII data, length 44 chars:
    0x0000: Reference Viewing Condition in IEC61966-2.1
  No Unicode data
  ScriptCode Data, Code 0x0, length 44 chars
    0x0000: 52 65 66 65 72 65 6e 63 65 20 56 69 65 77 69 6e 67 20 43 6f 6e 64 
...

tag 10:
  sig      'view'
  type     'view'
  offset   980
  size     36
Viewing Conditions:
  XYZ value of illuminant in cd/m^2 = 19.644501, 20.371796, 16.808899
  XYZ value of surround in cd/m^2   = 3.928894, 4.074387, 3.361786
  Illuminant type = D50

tag 11:
  sig      'lumi'
  type     'XYZ '
  offset   1016
  size     20
XYZArray:
  No. elements = 1

tag 12:
  sig      'meas'
  type     'meas'
  offset   1036
  size     36
Measurement:
  Standard Observer = 1931 Two Degrees
  XYZ for Measurement Backing = 0.000000, 0.000000, 0.000000    [Lab 0.000000, 0.000000, 0.000000]
  Measurement Geometry = Unknown
  Measurement Flare =   1.0%
  Standard Illuminant = D65

tag 13:
  sig      'tech'
  type     'sig '
  offset   1072
  size     12
Signature
  Technology = Cathode Ray Tube Display

tag 14:
  sig      'rTRC'
  type     'curv'
  offset   1084
  size     2060
Curve:
  No. elements = 1024

tag 15:
  sig      'gTRC'
  type     'curv'
  offset   1084
  size     2060
Curve:
  No. elements = 1024

tag 16:
  sig      'bTRC'
  type     'curv'
  offset   1084
  size     2060
Curve:
  No. elements = 1024

<强> P.S:
ArgyllCMS包含一个命令行工具21.icm,它可以从TIFF文件中提取嵌入的ICC配置文件。它没有从PDF文件中提取配置文件的工具。

答案 1 :(得分:1)

有两个常见位置可以在PDF文件中存储/使用ICC配置文件。附加到图像或存储在PDF文件的PDF / X输出目标区域。

诸如callas pdfToolbox之类的工具(警告,我隶属于该公司!)和Enfocus Pitstop能够通过GUI或使用(在pdfToolbox的情况下使用命令行)在PDF文件中显示所有颜色信息接口)。