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 работать на меня.

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