Создание списка используемых плашечных цветов. Каждый текстовый фрейм раскрашен соответствующим плашечным цветом - PullRequest
0 голосов
/ 06 апреля 2020

Как и в заголовке, я пытаюсь создать список всех плашечных цветов, используемых в документе. Каждое имя плашечного цвета должно быть в отдельном текстовом фрейме, а каждый текстовый фрейм должен быть заполнен соответствующим спотом.

Я пытался сделать это, используя образцы, и я был полу-успешным. Он создает список, но не окрашивает текстовые фреймы.

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;

1 Ответ

0 голосов
/ 02 мая 2020

попробуйте изменить:

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

на:

swatchname.textRange.characterAttributes.fillcolor = color;

Первая строка в опубликованном вами коде читает значение fillcolor и сохраняет его в var textColor. Следующая строка просто обновляет значение этого var, а не обновляет атрибут fillColor textFrame.

...