给出一个带有颜色和黑色&的PDF文件。白页,有没有什么方法可以用C#找出给定的页面,这些页面是彩色的,黑色和黑色的。白?
答案 0 :(得分:1)
我的建议是将每个页面渲染为图像,然后检查每个像素的RGB值是否彼此不相等。如果每个像素的R = G = B,则它是灰度图像。
然后,您可以根据页面是彩页还是黑白页等对页面执行操作(例如将页面提取到其他文档或打印页面)。
这可以通过使用我的公司PDF开发人员库Quick PDF,或者可能通过Kenneth建议的一个开源PDF库来实现。
答案 1 :(得分:0)
没有解析所有postscript内容,可能不是。 PDF页面上没有标记表明它是或不是b& w或颜色。因此,您必须检查页面上放置的每个元素的颜色,以确定它是否是颜色。我不确定在C#上读取PDF的库是什么,但你需要一个能读取所有元素的库。
同样,您需要检查页面上的任何图像的颜色,这并不简单。彩色图像格式可以保存b& w图像。
答案 2 :(得分:0)
退房:
我使用他的工具进行文本提取和pdf分析。非常便宜,免版税,并且运作良好。我认为GetPDFColourStyle作为PDFLayoutPlus库的一部分应该可以解决问题。
答案 3 :(得分:0)
将每个页面转换为位图图像,然后查看图像中的每个像素,以便能够捕捉颜色,然后区分颜色页面。
请参阅this Post了解详情。
注意:如果您要检测此颜色以进行打印,则必须检测CMYK颜色而不是RGB,CMYK是打印机标准颜色模式,RGB是显示颜色模式。
答案 4 :(得分:0)
有一个解决方案。
您可以解析每个页面内容字节并查找颜色运算符,如'rg,RG,k,K,sc,SC,scn,SCN',并读出每个页面中定义的所有颜色值和颜色空间。
请看一下这个例子: http://habjan.blogspot.com/2013/09/proof-of-concept-converting-pdf-files.html
它实现/解析所有颜色运算符,我认为它将是一个很好的起点和参考,可以帮助您编写所需的代码。