}

// Копируем объекты в буфер: по всей логике.

// Метод принадлежит объекту 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 о).


⇐ вернуться назад | | далее ⇒