Приветствую знатоков, нужна ваша помощь.
Есть задача. Пользователь заливает .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.
Спасибо большое за любую информацию.