Почему призрачный скрипт в обнаружении полного охвата чернил в результате получил то же значение CMYK?(PHP)

Я пытался конвертировать.doc файлы в pdf файлы, ссылки на Convert Word doc, docx и Excel xls, xlsx в PDF с PHP и успешно конвертировать в pdf,,, когда я обнаруживаю полное покрытие чернилами с помощью сценария-призрака значение для CMYK в том же значении, как,,,

СТРАНИЦА 1
0,8557 0,8557 0,8557 0,8557 CMYK ОК

Правильный результат

СТРАНИЦА 1
0,0000 0,0000 0,0000 1,0000 CMYK ОК
потому что мой файл содержит весь черный шрифт

`My php script for convert to pdf`

$result = exec('"C:\Program Files (x86)\OpenOffice 4\program\python.exe"
D:\wamp\www\doc_to_pdf\libobasis4.4-pyuno\unoconv -f pdf -o
D:/wamp/www/doc_to_pdf/files/'.$pdf_File_name.'
D:/wamp/www/doc_to_pdf/files/'.$doc_file_name);

мой призрачный скрипт
-o - -sDEVICE=inkcov E:/fileconverted.pdf

Кстати, я использую OpenOffice и Unoconv

1 ответ

Решение

Вы можете подумать, что ваш файл содержит только черный текст, и, возможно, в некотором смысле это так, но...

Поскольку вместо графического приложения вы использовали текстовый процессор, цвет текста почти наверняка указан в цветовом пространстве RGB. Поэтому, если вы попросите 50% зеленого текста, вы не получите 50% голубого, 50% желтого, 0% пурпурного и 0% черного, что вы получите: 0% красного, 50% зеленого и 0% синего. Это потому, что операционная система, которая, в конце концов, управляет монитором RGB, работает в пространстве RGB.

Для черного текста (R=G=B=0), когда вы преобразуете его в CMYK, он не становится C=M=Y=0, K=1. Это хорошо известная проблема с преобразованием цветового пространства.

Короче говоря, то, что вы видите, правильно, проблема с вашими ожиданиями.

Я полагаю, что созданные вами PDF-файлы также определяют цвет текста в RGB. Когда вы используете устройство inkcov, это заставляет Ghostswcript преобразовывать RGB в CMYK, используя стандартный алгоритм преобразования PostScript/PDF. Стандартное преобразование из RGB в CMYK приведено на стр. 476 Справочного руководства по языку PostScript.

Есть и другие способы справиться с этим преобразованием, но оно сложное, и мне нужно знать, почему вы хотите использовать чернила CMYK, прежде чем давать какие-либо рекомендации.

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

[после просмотра файла]

Да, весь цвет указан в DeviceRGB.

И не только это, но каждая страница определяет группу прозрачности с пробелом RGB. Таким образом, даже если текст был нарисован в CMYK, он будет преобразован в RGB для смешивания прозрачности. Да, я знаю, что в файле нет прозрачных объектов, но многие не очень яркие производители PDF создают группы прозрачности, даже если они на самом деле не используют прозрачный контент. Все, что использует Каир, особенно подвержено этому.

Таким образом, в сущности, то, что говорит вам устройство Ghostscript, является правильным, и это является следствием того факта, что ваш контент находится в RGB.

Теперь, если вы скажете мне, почему это проблема, я могу помочь. Хотя, учитывая присутствие группы прозрачности, это может быть сложно.

Другие вопросы по тегам