创建已用专色的列表。每个textFrame都涂有相应的专色

问题描述 投票:0回答:1

如标题中所示,我正在尝试创建文档中使用的所有专色的列表。专色的每个名称应位于不同的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;
javascript adobe-illustrator
1个回答
0
投票

尝试更改:

var textColor = swatchname.textRange.characterAttributes.fillcolor;
textColor = color;

至:

swatchname.textRange.characterAttributes.fillcolor = color;

您发布的代码的第一行正在读取fillcolor的值并将其保存到textColor var中。下一行只是更新该var的值,而不是更新textFrame的fillColor属性。

© www.soinside.com 2019 - 2024. All rights reserved.