Скрипт (или другие средства) для конвертации RGB в CMYK в PDF? - PullRequest
12 голосов
/ 05 августа 2010

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

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

Ответы [ 4 ]

21 голосов
/ 06 августа 2010

Этот ответ предназначен не для 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" then ...

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

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

2 голосов
/ 08 сентября 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.

1 голос
/ 02 марта 2011

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

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

0 голосов
/ 07 ноября 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 » может быть лучше для ввода ... Я не знаю (и я не знаете где). Может быть, эксперт мог бы объяснить лучший способ использования.

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

...