14

是否可以为 Adob​​e Illustrator 或其他工具编写脚本来读取大量 PDF 文件的内容并将所有 RGB 颜色转换为 CMYK?

如果是这样,有人可以指出所涉及的一些步骤,或者在哪里可以找到更多信息?

4

4 回答 4

25

此答案不适用于 Illustrator,而是适用于“其他工具”,即Ghostscript(下载gs871w32.exegs871w64.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 将会发布。这个新版本将首次支持带有 ICC 配置文件的色彩管理(基于 LCMS)...

更新:我更新了上面的命令,因为我错过了转换图像的选项。


更新 2

如果颜色转换无法按预期工作,并且您看到类似“无法将颜色空间转换为灰色,正在将策略恢复为 LeaveColorUnchanged”之类的消息,那么...

  1. 您的 Ghostscript 可能是9.x 版本系列的较新版本,并且
  2. 您的源 PDF 可能使用嵌入式ICC 颜色配置文件

在这种情况下,添加-dOverrideICC到命令行并查看它是否根据需要更改结果。

于 2010-08-06T11:57:00.707 回答
1

ABCpdf 将重新着色为 CMYK 或您能想到的任何其他色彩空间或配置文件。看:

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

于 2011-03-02T06:59:43.800 回答
1

我在 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。

于 2017-09-08T10:26:58.627 回答
1

在 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 ”对于输入可能会更好......我不知道(而且我不知道在哪里)。也许专家可以解释最好的使用方法。

谢谢。问候,

于 2017-11-07T10:58:07.490 回答