Скрипт (или какое-то другое средство) для преобразования RGB в CMYK в PDF?

Можно ли написать сценарий для Adobe Illustrator или какого-либо другого инструмента, который будет читать содержимое нескольких файлов PDF и преобразовывать все цвета RGB в CMYK?

Если да, может ли кто-нибудь указать на некоторые из необходимых шагов или где найти дополнительную информацию об этом?


person DaveDev    schedule 05.08.2010    source источник


Ответы (4)


Этот ответ относится не к Illustrator, а к 'какому-то другому инструменту', а именно Ghostscript (скачать gs871w32.exe или gs871w64.exe).

Ghostscript позволяет вам «повторно очищать» PDF-файлы (без промежуточного преобразования в PostScript — страшного пути «перепрошивки»). Попробуйте эту команду:

gswin32c.exe ^
    -o c:/path/to/output-cmyk.pdf ^
    -sDEVICE=pdfwrite ^
    -dUseCIEColor ^
    -sProcessColorModel=DeviceCMYK ^
    -sColorConversionStrategy=CMYK ^
    -sColorConversionStrategyForImages=CMYK ^
     input-rgb.pdf

И если вы сможете подождать еще несколько недель, будет выпущен Ghostscript 9.00. Эта новая версия впервые будет поддерживать управление цветом (на основе LCMS) с профилями ICC...

ОБНОВЛЕНИЕ: я обновил приведенную выше команду, потому что пропустил опцию конвертации изображений.


Обновление 2

Если преобразование цветов не работает должным образом и вы видите сообщение типа "Невозможно преобразовать цветовое пространство в серый, стратегия возвращается к методу LeaveColorUnchanged", тогда...

  1. ваш Ghostscript, вероятно, является более новой версией из серии версий 9.x, и
  2. в исходном PDF-файле, скорее всего, используется встроенный цветовой профиль ICC.

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

person Kurt Pfeifle    schedule 06.08.2010
comment
Я дал этому шанс .. кажется, он сделал свое дело. Я не очень хорошо разбираюсь в преобразованиях цветов, поэтому, пожалуйста, поддержите меня. Можно ли указать карту, на которую должен перейти каждый RGB в CMYK? Или это делается по наилучшему предположению? Или есть более точный/научный подход, который использует это приложение, о котором я, очевидно, не знаю? - person DaveDev; 07.08.2010
comment
@DaveDev: так... кажется, получилось? Но вы все еще не видите причин принять ответ? ----------- «Карта», о которой вы просите, — в мире управления цветом они называют ее «профилем ICC». И ре. Поддержка профиля ICC в Ghostscript: см. последний абзац моего ответа ;-) - person Kurt Pfeifle; 07.08.2010
comment
Я вижу: Обнаружено использование -dUseCIEColor! После выпуска версии 9.11 Ghostscript мы рекомендуем не устанавливать -dUseCIEColor с семейством устройств pdfwrite/ps2write. - person krlmlr; 02.12.2018
comment
@krlmlr: Спасибо за добавление вашего комментария. Оригинальный ответ был написан более 8 лет назад и относится к Ghostscript версии 8.71. - person Kurt Pfeifle; 03.12.2018

ABCpdf перекрасит в CMYK или любое другое цветовое пространство или профиль, который вы можете придумать. Видеть:

http://www.websupergoo.com/helppdf7net/source/8-abcpdf6.operations/3-recoloroperation/1-methods/recolor.htm

person JVE    schedule 02.03.2011
comment
К сожалению, он преобразует все изображения в растровые изображения, делая документы значительно больше. Боюсь, для меня это что-то вроде шоу-стоппера. - person teedyay; 11.09.2014
comment
Вы проверили мой ответ на этот вопрос. - person Charu; 14.09.2017

Я написал и протестировал следующий скрипт в Illustrator CC 2017:

var folder = Folder.selectDialog();
if (folder) {
    var files = folder.getFiles("*.pdf")
    for (var i = 0; i < files.length; i++) {
        app.open(files[i]);
        var doc = app.activeDocument;
        app.executeMenuCommand('doc-color-cmyk');
        doc.close(SaveOptions.SAVECHANGES);
    }
}

Этот скрипт запросит папку, поэтому выберите папку, в которой находится ваш PDF-файл. Он преобразует все PDF-файлы в выбранной папке в CMYK.

person Charu    schedule 08.09.2017

В Linux Mint/Ubuntu я пробовал это (здесь), используя ICC Профили (Ghostscript 9.18, которым не нравится "-dUseCIEColor"):

gs -o output.pdf -sDEVICE=pdfwrite -r2400 -dOverrideICC=true -sOutputICCProfile=/usr/share/color/icc/Fogra27L.icm -sColorConversionStrategy=CMYK -dProcessColorModel=/DeviceCMYK -dRenderIntent=3 -dDeviceGrayToK=true input.pdf

"Кажется" работает (-r2400 пригодится, он для разрешения, его можно поменять или убрать).

Возможно, добавление "-sDefaultRGBProfile=/usr/share/color/icc/colord/sRGB.icc" было бы лучше для ввода... Я не знаю (и я не знаю, где ). Может быть, эксперт мог бы объяснить лучший способ использования.

Спасибо. С уважением,

person Alf_LPB    schedule 07.11.2017