Почему Ghostscript выводит некоторые страницы некоторых PDF-файлов с изменёнными цветами (текста или изображений) на красный?

Вопрос или проблема

Я использую версию GPL Ghostscript 9.27. Я успешно сжал несколько PDF-файлов (в Linux) с помощью команды gs, как я думал.

Но после проверки некоторых конкретных PDF-файлов я заметил изменения цвета на некоторых страницах, как минимум в двух PDF; например, в некоторых файлах есть страницы с словами из целых абзацев, измененными на красный цвет (причем большинство страниц осталось как оригинал, где текст черными символами). Я не знал, были ли затронутые тексты векторами или растровыми (из сканирования) с векторным наложением.

Более того, другой PDF, который содержит изображения черно-белого (серого) масштаба, теперь после сжатия имеет текст (возможно, как векторы) того же цвета (черный), но все изображения стали красными и черными. Так что здесь проблема, похоже, иная, я думаю, потому что затрагивает только все растровые изображения. Возможно, в файле, где есть проблема с растром, нет проблемы с вектором/текстом.

Ниже вверху — часть файла с затронутыми изображениями, после (слева) и до (справа) сжатия; внизу слева у нас есть другой файл после сжатия с текстом (как вектор) в красном цвете, а внизу справа другая страница с текстом (как вектор) в обычном черном цвете, как в оригинале.

Вот пример.

Команда, которую я использовал, оставила версию выходного PDF как оригинал (что указано в -dCompatibilityLevel). Она выглядит так:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=original_version -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dSAFER -dBATCH -sOutputFile=file_out file_in

Программа не показывает, что есть какая-либо ошибка. Я пытался удалить опцию -dQUIET или -dSAFER, но ничего не изменилось. Чтобы быть точным, опция -dSAFER должна была предотвратить изменение целостности PDF шрифтом gs.

Итак, как избежать этих неожиданных изменений с Ghostscript? В чем причина этой проблемы?


Я обнаружил, пробуя команду pdfimages -list <pdf_file> с PDF, у которого есть проблема с изображениями, что все они имеют цветовое пространство изображения типа “Separation” (столбец color = sep). Но та же команда, использованная с различными другими PDF, которые имеют только проблему с текстом (или без проблем), имеет цветовое пространство изображения другое (например, rgb, cmyk, gray и т.д.). Я не знаю много, но подозреваю, что это различие имеет последствия, связанные с теми проблемами gs.


Спасибо Йорику за запрос разъяснений и уточнений.

Проблема, вероятно, вызвана ошибкой в версии 9.27, так что если вы можете, обновите Ghostscript и переходите сюда к P.S.. В противном случае, если вы используете эту версию, продолжайте читать.

Я наконец нашел одно решение всех проблем. Я искал информацию о цветах в онлайн-руководстве Ghostscript по выходу PDF и нашел переключатель ColorConversionStrategy, который меняет цветовое пространство (как яbelieve). Варианты: LeaveColorUnchanged, Gray, RGB, CMYK или UseDeviceIndependentColor. Затем я попробовал с PDF, у которого изображения были изменены, команду:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=original_version -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dSAFER -dBATCH -sColorConversionStrategy=LeaveColorUnchanged -sOutputFile=file_out file_in

и выход теперь имеет правильные оригинальные цвета. Другие варианты сделали это (оригинальные изображения были в сером масштабе): Gray изображения остались как оригинал, RGB изображения изменились на красные и черные, CMYK изображения изменились на белые и циановые, UseDeviceIndependentColor остались теми же (но в руководстве сказано, что это менее совместимо с ps).

Я повторил ту же команду со всеми PDF, затронутыми изменением цвета векторного текста. Это также всегда исправляло проблему. Я повторно попробовал опцию RGB и это вызвало проблему.

Поэтому лучшая опция среди всех в этих случаях, я думаю, это -sColorConversionStrategy=LeaveColorUnchanged.
Я думаю, что будет хорошо включить эту опцию как норму, на случай, если вы будете использовать настройки /screen или /ebook (по крайней мере в версии 9.27; читайте P.S. ниже).

Дело в том, что программа с настройкой /ebook автоматически устанавливает ColorConversionStrategy на RGB, что в моем случае вызывает проблему. Поэтому этот переключатель генерирует меньше (или никаких) проблем с LeaveColorUnchanged вместо этого.


О причине я не знаю конкретно, но первой подозреваемой является проблема в сжатии изображений с цветовым пространством Separation.
Я заметил, проверяя pdfimages -list, что цветовое пространство “Separation” в входном PDF остается в выходном (но /ebook должно было бы изменить это).

P.S.: Вероятно, согласно этому ответу (по аналогичной проблеме), я только что обнаружил, в Ghostscript версии 9.27 есть ошибка.
Мой обходной путь работает для меня, но проблема не должна была возникать. Возможно, версия 9.50 работает хорошо. Текущая версия 9.56.1, но я использую систему на базе Debian, так что она не сильно обновлена.


Примечание редактирования: Извините, я не эксперт, поэтому я думал, чтоSelectable text could only be a vector, but it can be also a raster that is overlayed by vectors through OCR, и я думаю, что это был случай (как я полагаю, цветовые пространства касаются только растра). Поэтому я немного отредактировал свои предложения.

Ответ или решение

Проблема, описанная вами, связана с изменением цветов текста и изображений в некоторых PDF-файлах после их обработки с помощью Ghostscript версии 9.27. Данное поведение может иметь несколько причин, и важно рассмотреть их в деталях.

Причины изменения цвета

  1. Ошибки в версии Ghostscript: Версия 9.27 известна некоторыми проблемами, связанными с управлением цветом. Если возможно, рекомендуется обновить Ghostscript до более поздней версии, чтобы избежать этих ошибок. Более свежие версии могут содержать исправления, которые устраняют подобные проблемы.

  2. Настройки управления цветом: Ваша команда, использующая опции управления цветом, включает установку -dPDFSETTINGS=/ebook, при которой по умолчанию выбирается стратегия ColorConversionStrategy=RGB. Это означает, что при обработке PDF-файлов Ghostscript может преобразовывать цветовые пространственные модельные данные, включая оттенки текста и графики. Если изначально цвета изображений или текста были в пространстве "Separation", это может привести к несоответствиям.

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

Решения проблемы

Для решения этой проблемы вы уже нашли рабочий вариант — параметр -sColorConversionStrategy=LeaveColorUnchanged. Этот параметр сохраняет оригинальные цвета при обработке, что позволяет избежать изменений, вызываемых автоматическим преобразованием.

Пример команды:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=original_version -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dSAFER -dBATCH -sColorConversionStrategy=LeaveColorUnchanged -sOutputFile=file_out file_in

Использование этого параметра позволяет сохранить цвета оригинальных текстов в черном и изображений в градациях серого.

Рекомендации

  1. Проверка версии Ghostscript: Убедитесь, что вы используете актуальную версию Ghostscript. Проверка изменений в новых версиях может оказать положительное влияние на вашу работу.

  2. Тестирование различных настроек: Проводите тесты с различными настройками color conversion в зависимости от ваших конкретных требований. Некоторые файлы могут требовать специфических настроек для адекватного отображения.

  3. Документация и ресурсы: Ознакомьтесь с официальной документацией Ghostscript по управлению цветом, чтобы лучше понять, как работает система. Это знание может быть полезно при выборе оптимальных параметров для ваших PDF-файлов.

Заключение

Несомненно, проблема, с которой вы столкнулись, может быть решена путем корректной настройки параметров команды Ghostscript и поддержания актуальности программного обеспечения. С учетом ваших выводов о различиях в цветовых пространствах и их воздействии на результат, предлагаемые решения позволят избежать изменения цветов и сохранить целостность ваших PDF-документов.

Оцените материал
Добавить комментарий

Капча загружается...