У меня есть этот скрипт для распределения объектов по своим слоям.
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?
Вам вообще не нужно ничего выбирать. Да: скрипты могут работать с выделением, но если вы хотите переместить все , вам не нужно указывать скрипту, что это за «все».
Таким образом, вы можете перебрать все элементы страницы и переместить их на новый слой. Однако это не сработает для сгруппированных объектов: сама группа является одним объектом, но все ее составные части также перечислены как отдельные элементы страницы. Хитрость заключается в том, чтобы проверить, является ли родительский объект «группой».
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);
в начало вашего текущего скрипта, и тогда он тоже будет работать. Но мой способ лучше.)
Куртка Janus Bahs