PDF в PDF/A-2b без dUseCIEColor
Моя цель - взять произвольный PDF у пользователей и сохранить его как PDF/A-2b.
Текущий подход заключается в использовании Ghostscript 9.21 (через ghost4j) для создания преобразованного файла. Это работает, но не без проблем. Я заставил его работать с двумя разными наборами параметров в Ghostscript.
во-первых
Используя опцию -dUseCIEColor
как показано ниже, будет работать и создаст действительный PDF / A-2b с парой разных тестовых файлов. Это, однако, будет печатать страницы ошибок в журнале, говоря, что это не рекомендуется использовать.
Вот полные аргументы:
-dBATCH
-dNOPAUSE
-dPrinted=true
-sDEVICE=pdfwrite
-dPDFACompatibilityPolicy=1
-sColorConversionStrategy=/UseDeviceIndependentColor
-sProcessColorModel=DeviceCMYK
-sOutputICCProfile=/tmp/icc.icc
-sOutputFile=/tmp/result.pdf
-dPDFA=2
-dUseCIEColor
/tmp/PDFA_def.ps
/tmp/test.pdf
И PDFA_def.ps является поставщиком по умолчанию 9.21, указывая на тот же Профиль ICC и эту строку внизу:
<</NeverEmbed []>> setdistillerparams
Профиль ICC - это случайный (CMYK) профиль, опубликованный Adobe.
Это работает, кроме ошибок в журнале.
во-вторых
Затем я постараюсь сделать, как сообщают ошибки журнала, и удалить -dUseCIEColor
,
Теперь некоторые тестовые файлы работают, некоторые - нет. Я подозреваю, что это связано с цветовым профилем исходного PDF или чем-то в этом роде.
3 высоты дают ошибку проверки: используется цветовое пространство, специфичное для устройства (DeviceRGB) без соответствующего выходного намерения.
Это можно исправить, переключив -sProcessColorModel=DeviceRGB
и переключить профиль ICC на случайный профиль RGB.
Затем для другого документа вы получите ошибку: используется цветовое пространство, специфичное для устройства (DeviceCMYK) без соответствующего выходного намерения.
Есть ли что-то, что мне не хватает с этим? Казалось бы, мне нужно переключить параметры на основе исходного файла PDF, который будет далек от предпочтительного стиля. Если это поможет, мне бы тоже понравилось с черно-белым PDF/A-2b. Спасибо!
1 ответ
Невозможно сказать, в чем проблемы, не видя файлов. UseCIEColor - это ужасный хакер PostScript для управления цветом, он ненадежен (с точки зрения цвета) и эффективно побеждает любое реальное управление цветом. Очевидно, что вы не выполняете управление цветом, поскольку используете случайный профиль, но все равно...
Поскольку вас не особо волнует управление цветом, я бы предложил вместо UseDeviceIndependentColor выбрать CMYK (поскольку вы используете ProcessColorModel). Обратите внимание, что если вы выберете ColorConversionStrategy=/CMYK, вам не нужно устанавливать ProcessColorModel, что предполагается из преобразования.
Кроме этого, я должен предложить вам открыть сообщение об ошибке. Если люди не сообщают о проблемах, они не будут исправлены....
Правильная PDF/A-совместимая замена для UseCIEColor
кажется, это комбинация этих двух вариантов:
-sProcessColorModel=DeviceCMYK
-sColorConversionStrategy=UseDeviceIndependentColor
Обе DeviceCMYK
а также DeviceRGB
работать на меня.