如何使用C#获取PDF文件中的彩页数?

时间:2009-05-11 13:22:45

标签: c# pdf

给出一个带有颜色和黑色&的PDF文件。白页,有没有什么方法可以用C#找出给定的页面,这些页面是彩色的,黑色和黑色的。白?

5 个答案:

答案 0 :(得分:1)

我的建议是将每个页面渲染为图像,然后检查每个像素的RGB值是否彼此不相等。如果每个像素的R = G = B,则它是灰度图像。

然后,您可以根据页面是彩页还是黑白页等对页面执行操作(例如将页面提取到其他文档或打印页面)。

这可以通过使用我的公司PDF开发人员库Quick PDF,或者可能通过Kenneth建议的一个开源PDF库来实现。

答案 1 :(得分:0)

没有解析所有postscript内容,可能不是。 PDF页面上没有标记表明它是或不是b& w或颜色。因此,您必须检查页面上放置的每个元素的颜色,以确定它是否是颜色。我不确定在C#上读取PDF的库是什么,但你需要一个能读取所有元素的库。

同样,您需要检查页面上的任何图像的颜色,这并不简单。彩色图像格式可以保存b& w图像。

答案 2 :(得分:0)

退房:

PDF-Analyser

我使用他的工具进行文本提取和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

它实现/解析所有颜色运算符,我认为它将是一个很好的起点和参考,可以帮助您编写所需的代码。