从Linux命令行查找PDF中的色彩空间

我需要检查给定的PDF文件是否完全在CMYK色彩空间。 正如你可能知道的那样,这是打印所必需的。

目前,它是使用Adobe的GUI应用程序完成的,但是需要花费很多时间,我们需要使用Linux脚本将其自动化。

我已经testing了许多库,但是他们每个都给了我无效的结果,或者不支持更新的PDF规范。

  • 我还没有find解决scheme,在ghostscript
  • 从PDF中导出图像不够好,因为还有path和其他媒体,这些也需要validation。
  • identify -verbose会给出无效的结果(糟糕的色彩空间,但也是糟糕的DPI)。

据我所知,PDF文件中的元素可以有不同的颜色空间,我想检查每个元素是否在CMYK中。

从编码的角度来看,您需要访问一个工具来呈现PDF文档中的每个页面,而不是实际绘制事物,而是需要调用每个PDF绘图命令的瓶颈。

从那里你将需要拦截所有的颜色操作符,所有的gstate操作符,所有的图像操作符,并在所有的Form XObjects上递归,并标记所有不是CMYK的。 请注意,某些色彩空间会很棘手,例如,您可以使用CMYK ICC色彩空间下的调色板色彩空间。 您还可以运行应用程序将颜色设置为RGB颜色,从不标记页面,然后在标记之前切换到CMYK的情况。