Приветствую знатоков, нужна ваша помощь.


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


Я чуть чуть погуглил и где-то в интернете один из пользователей запостил что-то типа


Monochrome (Black and White) pages:



gswin64c -q -o - -sDEVICE=inkcov DOCUMENT.pdf | grep «^ 0.00000 >0.00000 0.00000» | find /c /v ""




Color pages:




gswin64c -q -o - -sDEVICE=inkcov DOCUMENT.pdf | grep -v «^ >0.00000 0.00000 0.00000» | find /c /v ""



У меня пока отсутствует опыт работы с Ghostscript. Однако, эти команды не учитывают многих особенностей.


Когда пользователь работает с Word(овскими) документами и сохраняет его к PDF, все страницы, с обычным текстом, идут в RGB пространстве со значениями 0/0/0. Если отконвертировать их в CMYK пространство то, чёрный превращается в комбинированный. Дизайнеры ещё называют глубокий чёрный. Поэтому, когда запускаешь первую команду (определить чёрно-белый) - они все считаются цветными.


Тут, было бы правильным, отнести диапазон значений, в который отнести не только значения CMYK 0/0/0/0, но и серый и глубокий чёрный.


С другой стороны, я даже не представляю себе, а как ghostscript будет определять страницу, если будет чёрный цвет текста и одно слово, скажем, синим. Или будет цветная картинка.


нашёл для Node.JS уже модуль, думаю, буду работать через него.
https://www.npmjs.com/package/ghostscript4js


Разделять собираюсь, наверное, при помощи pdftk.exe.


Спасибо большое за любую информацию.









 ,






URL записи