如标题中所示,我正在尝试创建文档中使用的所有专色的列表。专色的每个名称应位于不同的textFrame中,并且每个textFrame均应填充有相应的专色。
我尝试使用色板进行操作,但我成功了一半。它创建一个列表,但不为textFrames着色。
var swatches = doc.swatches;
if (swatches.length > 0) {
for (var i = 0; i < swatches.length; i++) {
var swatch = swatches[i]
var color = swatch.color;
if (color.typename == "SpotColor") {
var swatchname = doc.textFrames.add();
swatchname.contents = color.spot.name;
var textColor = swatchname.textRange.characterAttributes.fillcolor;
textColor = color;
}
}
}
尽管下面的示例运行正常,但我不确定为什么它不起作用。
var docRef = app.activeDocument;
var myTextFrame = docRef.textFrames.add();
myTextFrame.position = [200,200];
myTextFrame.contents = "Hello World!"
var newCMYKColor = new CMYKColor();
newCMYKColor.cyan = 80;
newCMYKColor.magenta = 40;
newCMYKColor.yellow = 0;
newCMYKColor.black = 0;
myTextFrame.textRange.characterAttributes.fillColor = newCMYKColor;
尝试更改:
var textColor = swatchname.textRange.characterAttributes.fillcolor;
textColor = color;
至:
swatchname.textRange.characterAttributes.fillcolor = color;
您发布的代码的第一行正在读取fillcolor的值并将其保存到textColor var中。下一行只是更新该var的值,而不是更新textFrame的fillColor属性。