Процесс InDesign в Photoshop [закрыт]

У меня есть этот скрипт для распределения объектов по своим слоям.

var mySels = app.selection.length;
if (mySels == 0) {
    alert("Select the object and Run the script");
    exit(0)
} else {
    while (mySels--) {
        var objLayer = app.activeDocument.layers.add();
        app.selection[mySels].itemLayer = objLayer;
    }
}

Мой вопрос: как заставить этот скрипт автоматически выбирать все объекты, чтобы я мог запустить его в папке с кучей файлов InDesign?

Какое это имеет отношение к фотошопу? Я не вижу в вопросе упоминания о чем-либо, кроме InDesign…

Ответы (1)

Вам вообще не нужно ничего выбирать. Да: скрипты могут работать с выделением, но если вы хотите переместить все , вам не нужно указывать скрипту, что это за «все».

Таким образом, вы можете перебрать все элементы страницы и переместить их на новый слой. Однако это не сработает для сгруппированных объектов: сама группа является одним объектом, но все ее составные части также перечислены как отдельные элементы страницы. Хитрость заключается в том, чтобы проверить, является ли родительский объект «группой».

doc = app.activeDocument;
for (obj=0; obj<doc.allPageItems.length; obj++)
{
    if (doc.allPageItems[obj].parent instanceof Group)
        continue;
    var objLayer = doc.layers.add();
    doc.allPageItems[obj].itemLayer = objLayer;
}

До (слева)/После (справа) показывает все в одном слое слева и перемещается в отдельные слои справа. Обратите внимание, как 3 сгруппированные строки перемещаются как один объект.

до и после распределения по слоям

(О, хорошо, чтобы выбрать все элементы страницы, добавьте app.select(app.activeDocument.allPageItems);в начало вашего текущего скрипта, и тогда он тоже будет работать. Но мой способ лучше.)