6

I don't suppose is there any free or open source libraries out there that able to calculate the CMYK coverage on a pdf file. I tried looking around I don't seem to able to find any. If there isn't any out there if anyone could point me in the right direction of what do I need to do in order to calculate the CYMK coverage on a pdf. Oh also the development environment I'd be working in is .net framework 4.0

Cheers

4

2 回答 2

4

好的,现在(从几天前开始)有了 Ghostscript 的新选项,供所有愿意从源代码编译它的人使用。它仍然是“前沿”,不推荐用于生产用途。你们其余的人将不得不等待下一个正式版本。

新选项以名为inkcov的新“设备”的形式出现。这与“bbox”设备的工作方式类似,它为每页吐出 BoundingBox 值:“inkcov”设备吐出用于每页的墨水覆盖率的 C、M、Y 和 K 值(值 1 对应于 100 %)。请注意,墨水的总和可能高于 100%(例如:将 100% 的黄色与 100% 的洋红色混合会产生 100% 的“红色”视觉印象)。

使用从当前 Git 源编译的 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 源代码做出了贡献。(当然,它仍在等待一些繁重的测试和验证,将其结果与其他类似工具进行比较。)

于 2011-12-19T20:49:37.713 回答
2

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

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

该设备创建多个输出文件。它创建:

  1. 一个 32bit 复合 CMYK 文件(tiff32nc 格式,即 32bit CMYK [8bits/component]),加上
  2. 多个 tiffgray 文件——每个分色的 tiffgray(8 位灰度,LZW 压缩)。

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压缩将为每种分离着色剂创建相同大小的文件。

于 2010-08-06T15:09:29.817 回答