【发布时间】:2011-03-25 23:59:35
【问题描述】:
是否可以为 Adobe Illustrator 或其他工具编写脚本来读取大量 PDF 文件的内容并将所有 RGB 颜色转换为 CMYK?
如果是这样,有人可以指出一些涉及的步骤,或者在哪里可以找到更多信息?
【问题讨论】:
标签: pdf rgb ghostscript adobe-illustrator cmyk
是否可以为 Adobe Illustrator 或其他工具编写脚本来读取大量 PDF 文件的内容并将所有 RGB 颜色转换为 CMYK?
如果是这样,有人可以指出一些涉及的步骤,或者在哪里可以找到更多信息?
【问题讨论】:
标签: pdf rgb ghostscript adobe-illustrator cmyk
这个答案不是针对 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 将会发布。这个新版本将首次支持带有 ICC 配置文件的色彩管理(基于 LCMS)...
更新:我更新了上面的命令,因为我错过了输入转换图像的选项。
如果颜色转换无法按预期工作,并且您看到类似“无法将颜色空间转换为灰色,正在将策略恢复为 LeaveColorUnchanged”的消息那么...
在这种情况下,将 -dOverrideICC 添加到命令行,看看它是否会根据需要更改结果。
【讨论】:
ABCpdf 将重新着色为 CMYK 或您能想到的任何其他色彩空间或配置文件。见:
【讨论】:
我在 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。
【讨论】:
在 Linux Mint / Ubuntu 上,我使用 ICC 配置文件(Ghostscript 9.18,不喜欢“-dUseCIEColor”)尝试过 (from this):
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”对于输入可能会更好......我不知道(我不知道)不知道在哪里)。也许专家可以解释最好的使用方法。
谢谢。问候,
【讨论】: