Masia
20 лет на форуме
- Сообщения
- 143
- Реакции
- 65
Судя по всему, не факт, что надо перекрашивать вообще весь текст, а не определенный, заданный в поискеА вы не думали просто перекрасить в нужный цвет всеtextStyleRange
, у которыхfillColor
не входит в список допустимых цветов? И не мучиться поиском цвета?
findWhat
.Ради потренироваться попробовала сделать реализацию через
textStyleRange
. Работает. Перекрашивает весь текст с заданным цветом во всем документе.
Мне показалось, что делает он это значительно медленнее, чем поиск/замена. С другой стороны, он же кучу всего перебирает... Не исключаю, что я что-то не оптимизировала или как-то не так все сделала
JavaScript:
var myDoc = app.activeDocument;
var myTSR = myDoc.stories.everyItem().texts.everyItem().textStyleRanges.everyItem(); // myTextStyleRange
var targetColorValue = '0,100,70,0';
var correctColorValue = myDoc.swatches.itemByName("correctColorSwatch").colorValue;
for (i=0; i<myTSR.fillColor.length; i++){
if (myTSR.fillColor[i].colorValue == targetColorValue) {
myTSR.fillColor[i].colorValue = correctColorValue;
}
}