计算PDF上的CMYK覆盖率

时间:2010-06-22 10:51:28

标签: .net pdf colors cmyk color-space

我不认为有任何免费或开源的库能够计算pdf文件的CMYK覆盖率。我试着环顾四周,似乎找不到任何东西。如果没有任何人可以指出我正确的方向,我需要做什么才能计算pdf上的CYMK覆盖率。哦,我正在开发的开发环境是.net framework 4.0

干杯

2 个答案:

答案 0 :(得分:4)

好的,现在有一个新选项(几天前),Ghostscript为所有愿意从源代码编译的人提供了选项。它仍然是“前沿”,不推荐用于生产用途。其他人将不得不等待下一次正式发布。

新选项的形式是一个名为 inkcov 的新“设备”。这类似于'bbox'设备,它为每个页面吐出BoundingBox值:'inkcov'设备吐出用于每个页面的墨水覆盖率的C,M,Y和K值(值1对应于100) %)。请注意,墨水总量可能高于100%(例如:混合100%的黄色和100%的洋红色会给出100%'红色'的光学印象。)

使用从current Git source编译的Ghostcript尝试此命令:

gs -o - -sDEVICE=inkcov /path/to/your.pdf

这将吐出与此类似的输出:

Page 1
 0.20898  0.20905  0.41320  0.55001 CMYK OK
Page 2
 0.33561  0.02026  0.21677  0.16750 CMYK OK
Page 3
 0.00000  0.00000  0.00000  1.00000 CMYK OK
[....]

这个小实用程序是由埃尔兰根大学的Sebastian Kapfer创建的,并为Ghostscript源代码做出了贡献。 (当然,它仍在等待一些繁重的测试和验证,将其结果与其他类似工具进行比较。)

答案 1 :(得分:2)

您可以使用Ghostscript。使用tiffseptiffsep1设备以72dpi分辨率运行它。这将为每个CMYK着色剂创建单独的TIFF文件,然后您可以进一步使用它来“计算”每种颜色的覆盖率:

gswin32c.exe ^
    -sDEVICE=tiffsep ^
    -r72x72 ^
    -o "c:/path/to/output/dir/page_%03d.tif" ^
    c:/path/to/input.pdf

此设备会创建多个输出文件。它创造了:

  1. 一个32位复合CMYK文件(tiff32nc格式,即32位CMYK [8位/分量]),再加上
  2. 多个tiffgray文件 - 每个颜色分离的tiffgray(8位灰色,LZW压缩)。
  3. tiffgray文件是LZW压缩的。 -sOutputFile=... - 指定的文件名将是CMYK文件。 CMYK着色剂的分离名称'tiffgray'文件将附加'.Cyan.tif','。Magenta.tif''。Yellow.tif'和'.Black.tif'到该名称。 tiffsep还可以自动识别专色并为它们创建额外的tiffgray分色;这些名称附有一个数字。 (您也可以通过在命令行上传递-sSeparationColorNames来预先确定名称 - 但是您最好阅读Ghostscript文档中的详细信息,文件 Devices.htm 。)

    如果您使用tiffsep1输出设备,结果将类似 - 区别在于您将获得 灰色分色(无32位)复合CMYK),但这些将是TIFF G4文件(G4压缩方案)。

    您可以通过添加-sCompression=lzw(或none | crle | g3 | g4 | pack之一)来更改压缩方案。请注意,使用=none进行压缩会为每个分离着色剂创建大小相等的文件。