在PHP中计算PDF中的bw和彩色页面

时间:2011-10-18 14:07:51

标签: php pdf colors count

有人知道以下方面的可行解决方案:

如果PDF文件包含彩色页面,则需要进行检查。需要知道黑/白的总页数和包含一些颜色的总页数(图像或彩色文本)。

感谢您的任何想法!

更多信息#1: 我们期望主要是简单的“单词”,就像创建的PDF有一些图像和一些彩色文本元素/框。在此过程中不需要完整的扫描页面。

2 个答案:

答案 0 :(得分:1)

有关基于Ghostscript的工具,请参阅此答案:

它使用新的inkcov设备来确定每页的C(青色),Y(黄色),M(品红色)和K(黑色)成分(墨水覆盖率)的分布。你需要一个9.05或更新的Ghostscript版本。

示例命令行:

gs -q  -o - -sDEVICE=inkcov temp.pdf
 0.00000  0.00000  0.00000  0.02230 CMYK OK
 0.00000  0.00000  0.00000  0.02360 CMYK OK
 0.00000  0.00000  0.00000  0.02525 CMYK OK
 0.00000  0.00000  0.00000  0.01982 CMYK OK

每个仅包含C,M和Y的零页面将仅为黑/白。

答案 1 :(得分:0)

最简单的方法可能是使用工具将PDF渲染为一组图像,然后使用小程序确定这些图像中使用的颜色是否仅为灰度。

可以通过加载每个图像并扫描像素来执行第二步。对于扫描页面:确定某些灰度是不是微不足道的,因为你需要考虑白点,每个页面的黑点以及可能的边缘着色等等。我曾经创建了一个工具,以确定某些东西是文本还是黑白线稿通过获得Abs(R-G)和Abs(R-B)的2D历史图,绘制一条直线并检查该线和回归常数是否在某些预定范围内。