#target illustrator
var pi = app.activeDocument.pathItems; //все геометрические объекты
var arr2 = []; //массив для объектов
if (pi.length > 0) { //если объектов чуть более чем нифига
for (var i = 0; i < pi.length; i++) { //запускаем цикл
var fill = pi[i].fillColor; //заодно вводим переменные для заливки
var stroke = pi[i].strokeColor; //и обводки
// объявляем условие для исключения. объекты с цветом равным критерию ниже - не будут выделены
if (
(fill.black == 100 &&
fill.magenta == 50.1 &&
fill.cyan == 50.1 &&
fill.yellow == 50.1)
||
(stroke.black == 100 &&
stroke.magenta == 50.1 &&
stroke.cyan == 50.1 &&
stroke.yellow == 50.1)
)
{
continue;
}
// основная проверка. тут проверяется диапазон значений цвета. если оно true - объекты будут выделены
if (
(fill.black >= 70 &&
fill.black <= 100 &&
fill.magenta >=1 &&
fill.magenta <=100 &&
fill.cyan >=1 &&
fill.cyan <=100 &&
fill.yellow >=1 &&
fill.yellow <=100) ||
(stroke.black >= 70 &&
stroke.black <= 100 &&
stroke.magenta >=1 &&
stroke.magenta <=100 &&
stroke.cyan >=1 &&
stroke.cyan <=100 &&
stroke.yellow >=1 &&
stroke.yellow <=100)
){
arr2 [arr2.length] = pi[i]; //всё что соответствует критерию выше - добавляется в массив для последующего выделения
}
}
}
// этот блок является аналогом верхнего блока, но вместо pathItems работает с textFrames. его расписывать мне лень, тут все тоже самое.
var doc = app.activeDocument;
var tfs = doc.textFrames;
var arr = []
for (var i=0; i < tfs.length; i++) {
var tfill = tfs[i].textRange.fillColor;
var tstroke = tfs[i].textRange.strokeColor;
if (
(tfill.black == 100 &&
tfill.magenta == 50.1 &&
tfill.cyan == 50.1 &&
tfill.yellow == 50.1)
||
(tstroke.black == 100 &&
tstroke.magenta == 50.1 &&
tstroke.cyan == 50.1 &&
tstroke.yellow == 50.1)
)
{
continue;
}
if (
(tfill.black >= 70 &&
tfill.black <= 100 &&
tfill.magenta >=1 &&
tfill.magenta <=100 &&
tfill.cyan >=1 &&
tfill.cyan <=100 &&
tfill.yellow >=1 &&
tfill.yellow <=100) ||
(tstroke.black >= 70 &&
tstroke.black <= 100 &&
tstroke.magenta >=1 &&
tstroke.magenta <=100 &&
tstroke.cyan >=1 &&
tstroke.cyan <=100 &&
tstroke.yellow >=1 &&
tstroke.yellow <=100)
){
arr [arr.length] = tfs[i];
}
}
var arrsum = [].concat(arr,arr2) //объединяем массивы из проверки геометрии и проверки текста
activeDocument.selection = arrsum //выделяем все объекты найденные с помощью всего скрипта