我们有一个 InDesign Server 服务,可以根据用户输入更改文档中的文本、图像、颜色等。完成后,它会输出一个 INDD 包(压缩目录)或 PDF。
我们的一位客户要求根据他们自己的 .icc 颜色配置文件以 CMYK 格式输出所有输出。我可以让 IDS 将颜色配置文件附加到文件没有问题,如下所示:
// Set CMYK profile
if(inputs['cmyk_profile'] !== undefined && inputs['cmyk_profile']) {
app.colorSettings.cmykPolicy = ColorSettingsPolicy.PRESERVE_EMBEDDED_PROFILES;
document.cmykPolicy = ColorSettingsPolicy.PRESERVE_EMBEDDED_PROFILES;
document.cmykProfile = inputs['cmyk_profile'];
//document.printPreferences.colorOutput = ColorOutputModes.COMPOSITE_CMYK;
}
不过,我承认,我有点新手,PRESERVE_EMBEDDED_PROFILES
台词只是对我认为应该发生的事情的模糊猜测。我也无法让最后一行注释掉,因为它会引发错误:“无效参数”。根据文档,此实例变量“在指定与设备无关的 PPD 时无效”,尽管我不明白为什么不这样做。
我的主要问题是用户输入的图像和颜色可以是 RGB 格式,并且需要在该特定颜色配置文件中转换为 CMYK。(有人告诉我,仅将配置文件添加到文件中是不够的 - 我还必须转换资产)
我也尝试在转换为 PDF 时强制执行 CMYK,如下所示:
// Set CMYK if document has it
if(document.cmykPolicy)
{
app.pdfExportPreferences.pdfDestinationProfile = PDFProfileSelector.USE_DOCUMENT;
app.pdfExportPreferences.pdfColorSpace = PDFColorSpace.CMYK;
}
else
{
app.pdfExportPreferences.pdfColorSpace = PDFColorSpace.UNCHANGED_COLOR_SPACE;
}
// export pdf...
document.exportFile(ExportFormat.pdfType, myFile, preset);
但有人告诉我,生成的 PDF 文件也是 RGB。
有没有相对无痛的方法来做到这一点?