}
// Копируем объекты в буфер: по всей логике.
// Метод принадлежит объекту Application сору();
// Создаем новый документ как экспортный вариант var myDoc = documents.add();
// Вставляем объект по возможности в исходном местоположении -
// полный аналог операции Edit/Paste in Place pastelnPlace();
// Обнуляем поля публикации
with(myDoc.pages[0].marginPreferences) {
top = 0; bottom = 0; left = 0; right = 0;
}
// Изменяем размер страницы по размерам объекта, поскольку // именно размер страницы определяет размеры итогового документа II после экспорта with (myDoc.documentPreferences) { pageHeight = myTop - myBottom; pageWidth = myRight - myLeft;
}
II Экспортируем документ try {
myDoc.exportFile(myExportType[mySelectFileType.selectedlndex], myFile, true);
} catch (error) {
alert ("При экспорте произошла ошибка");
}
II Закрываем созданный документ без сохранения myDoc.close(SaveOptions.no); exit () ;
}
// Получение габаритов группы выделенных объектов function getSelectionBounds () {
var myTop = selection[0].visibleBounds[0]; var myLeft = selection[0].visibleBounds[1] ; var myBottom = selection[0].visibleBounds[2]; var myRight = selection[0].visibleBounds[3]; И Если какая-то величина превышает существующий максимум,
II значение максимума корректируется for i = 1; i < selection.length; i++ ) {
if (myTop > selection [i].visibleBounds[0]) { myTop = selection[i].visibleBounds[0];
}
if (myLeft > selection[i].visibleBounds[1]) { myLeft = selection[i].visibleBounds[1];
}
//С учетом направления оси координат if (myBottom < selection[i].visibleBounds[2]) { myBottom = selection[i].visibleBounds[2] ;
}
if (myRight < selection[i].visibleBounds[0]) { myRight = selection[i].visibleBounds[3];
}
}
}
4.11. Группировка объектов
Объединение объектов в группы - одна из стандартных ситуаций в верстке. Сгруппированные объекты ведут себя как один объект, что упрощает работу с ними - например, проведение трансформаций или перемещение по публикации. Как и при ручном способе, для скриптинга совершенно не имеет значения, какие именно объекты заносятся в группу -- могут быть самые разнообразные. Единственно, что нужно помнить,- меняется их порядок по глубине залегания - это естественно. Один из способов реализации подобной операции скриптингом приведен в листинге 4.26.
Листинг 4.26. Группировка выбранных объектов
// Если объектов несколько, то заносим их в массив if (selection.length > 1) {
var mySelection = new Array[]; for i = 0; i < selection.length; i++){ mySelection[i] = selection[i];
}
II Заносим объекты в группу
var myObject = myDoc.pages[0].groups.add(mySelection);
)
4.12. Трансформация объектов
В качестве разрядки предлагаю заняться творчеством - скриптинг может и это, правда, в довольно ограниченных пределах. Напишем скрипт (листинг 4.27), который создает копии выделенного объекта (с возможностью трансформаций) и размещает их с определенным сдвигом на листе.
Предусмотрим использование всех существующих в InDesign операций трансформации: СДВИГ В обоих направлениях (shearAngle), вращение (rotate о).