我们有一个InDesign Server服务,可根据用户输入更改文档中的文本,图像,颜色等。完成后,它会输出INDD包(压缩目录)或PDF。
我们的一个客户要求所有输出都是CMYK,根据他们自己的.icc颜色配置文件。我可以让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。
有没有相对无痛的方法呢?