Как создать правильный (в градациях серого) файл PDF / X-3 с помощью Ghostscript
Я пытаюсь преобразовать произвольные файлы PDF (журнал, созданный с помощью pdfLaTeX, содержащий несколько фотографий, а также некоторые графические элементы, например, веб-комиксы) в действительный PDF / X-3 с использованием Ghostscript, и я хочу, чтобы результат был в градациях серого / монохромном режиме. Я не очень много знаю о цветовых профилях ICC, и в любом случае меня не волнует управление цветом, так что если это проще без профилей ICC, то я не против. Я готов позволить принтеру сделать свое дело с моим файлом - мне не нужна абсолютная точность цветопередачи (тем более, что здесь мы говорим о оттенках серого).
Я пытался заставить его работать, используя документацию Ghostscript, раздел «Создание документа PDF / X-3» . Исходя из этого, моя попытка выглядит так:
gs \ -dSAFER -sDEVICE=pdfwrite \ -dEmbedAllFonts \ -sProcessColorModel=DeviceGray \ -sColorConversionStrategy=Gray \ -dPDFX -dPDFACompatibilityPolicy=1 \ -o 'output.pdf' -f 'my_pdfx_def.ps' 'input.pdf'
Где my_pdfx_def.ps
содержится следующее, основанное на шаблоне, который поставляется с Ghostscript:
%! systemdict /ProcessColorModel known { systemdict /ProcessColorModel get dup /DeviceGray ne exch /DeviceCMYK ne and } { true } ifelse { (ERROR: ProcessColorModel must be /DeviceGray or /DeviceCMYK.)= /ProcessColorModel cvx /rangecheck signalerror } if [ /GTS_PDFXVersion (PDF/X-3:2002) % Must be so (the standard requires). /Trapped /False % Must be so (Ghostscript doesn't provide other). /DOCINFO pdfmark % Define an ICC profile: currentdict /ICCProfile known { [/_objdef /type /stream /OBJ pdfmark [ <</N systemdict /ProcessColorModel get /DeviceGray eq ifelse >> /PUT pdfmark [ ICCProfile (r) file /PUT pdfmark } if % Define the output intent dictionary: [/_objdef /type /dict /OBJ pdfmark [ << /Type /OutputIntent % Must be so (the standard requires). /S /GTS_PDFX % Must be so (the standard requires). /OutputCondition (Commercial and specialty printing) % Customize /Info (none) % Customize /OutputConditionIdentifier (CGATS TR001) % Customize /RegistryName (http://www.color.org) % Must be so (the standard requires). currentdict /ICCProfile known { /DestOutputProfile % Must be so (see above). } if >> /PUT pdfmark [ <</OutputIntents [ ]>> /PUT pdfmark
Это работает и создает файл, который внешне выглядит нормально в моей программе просмотра PDF. Тем не менее, я не уверен, что этого на самом деле достаточно (создание правильного / разумного документа PDF / X-3), учитывая длинный список того, что я должен делать в соответствии с документацией Ghostscript. В частности это говорит
Чтобы создать документ PDF / X-3 из Postscript или PDF-файла, вам необходимо:
[...]
- Укажите файл определения PDF / X перед запуском входного документа. Он предоставляет дополнительную информацию для включения в выходной документ. Пример файла определения PDF / X можно найти в
gs/lib/PDFX_def.ps
.- Если зарегистрированное условие печати применимо, укажите его идентификатор в файле определения PDF / X. В противном случае предоставьте профиль ICC и укажите его в файле определения PDF / X, как описано ниже.
Я попытался адаптировать упомянутый файл PDFX_def.ps
(см. Выше), но я не знаю, что это OutputCondition
такое или что я должен положить для этого. К сожалению, это едва документировано в документации по Ghostscript. Я попытался установить .icc
файл в своей индивидуальной версии, но не смог заставить Ghostscript найти этот файл - несмотря ни на что, у меня всегда было « Error: /invalidfileaccess in --file--
». И какой цветовой профиль я бы использовал?
- Укажите
DefaultRGB
файл ресурса в категории ресурсов ColorSpace. Либо определите его в файле определения PDF / X, либо предоставьте определениеgs/Resource/ColorSpace/DefaultRGB
.gs/Resource/ColorSpace/DefaultRGB
обычно распространяется вместе с Ghostscript, его содержание не обязательно может удовлетворить ваши потребности, см. ниже.
Само собой разумеется, это не определяет, как сделать это. Но в любом случае, мне даже нужно это, учитывая, что я хочу оттенки серого?
- Укажите с
-sOutputICCProfile
помощью профиля ICC, который представляет цветовое пространство (CMYK или серый) конечного файла. Это тот же профиль ICC, используемый в файле определения PDF / X, что и ICCProfile. Даже если вы используете стандартOutputCondition
и вам не нужно указывать ICCProfile, вы все равно должны установитьOutputICCProfile
соответствующий профиль ICC для правильного преобразования цветов.
Ну, я не уточнил, -sOutputICCProfile
и это, похоже, не навредило. Должен ли я все еще? (Опять же, откуда мне взять профиль ICC?)
0 ответов на вопрос
Похожие вопросы
-
14
PDF Viewer в Windows
-
8
Firefox PDF плагин для просмотра PDF в браузере на Windows
-
17
Как распечатать документы в pdf
-
-
2
Firefox печать в PDF-файл
-
4
PDF Reader для iPhone
-
6
Adobe Reader: запомните пароль для файла PDF
-
4
Можно ли добавить свои собственные закладки / вкладки в файл PDF?
-
5
Какие альтернативы Adobe Acrobat имеют функции подписи PDF
-
3
Какое программное обеспечение может преобразовать почерк в текст?
-
1
Составить оглавление для многих .odt-файлов