Как я могу получить количество цветных страниц в файле PDF с помощью C #? - PullRequest
4 голосов
/ 11 мая 2009

Учитывая файл PDF с цветными и черно-белыми страницами, есть ли способ с C # найти среди заданных страниц, которые являются цветными, а какие черно-белыми?

Ответы [ 5 ]

1 голос
/ 12 мая 2009

Я рекомендую визуализировать каждую страницу на изображении, а затем проверять каждый пиксель на наличие значений RGB, не равных друг другу. Если R = G = B для каждого пикселя, то это изображение в градациях серого.

Затем вы можете выполнять действия (такие как извлечение страницы в другой документ или печать страницы) на страницах в зависимости от того, являются ли они цветными или черно-белыми страницами и т. Д.

Этого можно достичь, используя библиотеку PDF-файлов моей компании, Quick PDF или, возможно, одну из библиотек PDF с открытым исходным кодом, предложенную Кеннетом.

0 голосов
/ 24 сентября 2013

Есть решение.

Вы можете анализировать байты содержимого каждой страницы и искать операторы цвета, такие как 'rg, RG, k, K, sc, SC, scn, SCN' и считывать все значения цвета и цветовые пространства, определенные на каждой странице.

Взгляните на этот пример: http://habjan.blogspot.com/2013/09/proof-of-concept-converting-pdf-files.html

Он реализует / анализирует все операторы цвета, и я думаю, что это будет хорошей отправной точкой и справочной информацией, чтобы помочь вам написать то, что вам нужно.

0 голосов
/ 23 сентября 2013

Конвертируйте каждую страницу в растровое изображение, а затем просматривайте каждый пиксель изображения, на котором вы сможете поймать цвета, а затем различать цветные страницы.

см. это сообщение для более подробной информации.

Примечание. Если вы обнаруживаете эти цвета для печати, вам нужно определить цвета CMYK, а не RGB, CMYK - это стандартный цветной режим принтера, а RGB - цветной режим отображения.

0 голосов
/ 13 мая 2009

Выезд:

PDF-Analyzer

Я использую его инструменты для извлечения текста и анализа PDF. Очень недорого, без лицензионных платежей и хорошо работают. Я думаю, что GetPDFColourStyle как часть библиотеки PDFLayoutPlus должна помочь.

0 голосов
/ 11 мая 2009

Если не считать синтаксического анализа всего постскриптумного содержимого, вероятно, нет. На странице PDF нет флага, который говорит, что он черно-белый или цветной. Таким образом, вам нужно проверить цвет каждого элемента, размещенного на странице, чтобы выяснить, был ли это цвет или нет. Я не уверен, какие библиотеки существуют для чтения PDF-файлов на C #, но вам понадобится библиотека, которая будет читать все элементы.

Точно так же любые изображения, которые вы имеете на странице, должны быть проверены на цвет, и это не просто. Цветные форматы изображений могут содержать черно-белые изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...