4.5. Определение координат
В InDesign используется привычный способ задания координат объектов - по осям х и у. Все расстояния измеряются относительно точки начала координат, которая в InDesign совпадает с левым верхним углом страницы. Значения ниже начала координат считаются положительными, выше- отрицательными. Это сделано исключительно ради удобства, поскольку в случае неизменности начала координат значения всех объектов в публикации по оси у будут положительными.
При задании размеров некоторых объектов, в частности текстовых фреймов, используется двухточечный метод: задаются координаты левого верхнего угла и правого нижнего (т. е. его габариты). Важно помнить порядок установки значений: верх, левая точка, низ, правая точка (yi, xi, у2, х2) - рис. 4.1.
Рис. 4.1. Порядок перечисления координат в свойстве geometricBounds
Задаются координаты через свойство geometricBounds, которое, как вы уже поняли, является массивом из четырех значений. Необходимо отметить, что в любом случае нужно использовать только такую, полную, конструкцию (листинг 4.12), даже если нужно изменить лишь какое-то одно значение.
Листинг 4.12. Задание координат через свойство geometricBounds
myObject.geometricBounds = Array[ topValue, leftValue, bottomValue, rightValue ]
Иными словами, команду
myOb j ect.geometricBounds[3] = myObj ect.geometricBounds[3]+10
InDesign проигнорирует, причем, в отличие от других некорректных действий, никакого замечания не выдаст (это- особенность работы с массивами, существующая в JavaScript) и, не зная ее, можно долго гадать: почему предупреждения об ошибке не возникает, а результат неправильный.
4.6. Использование мастер-страниц
Как правило, после определения размеров документа следующим шагом идет установка параметров мастер-страниц. Вот как это реализуется средствами скриптинга в InDesign (листинг 4.13).
: Листинг 4.13. Установка параметров мастер-страниц
// Создание нового документа myDocument = арр.documents.add();
// Задание параметров страниц with(myDocument.documentPreferences){ pageHeight = "297 mm" pageWidth = "210 mm" facingPages = true;
pageOrientation = PageOrientation.portrait;
}
// Установка начала координат документа в начало координат страницы myDocument.viewPreferences.rulerOrigin = RulerOrigin.pageOrigin;
II Переходим на первую мастер-страницу with(myDocument.masterSpreads[0]){
// Установки для четных страниц with(pages[0]){
// Отступы с краев with(marginPreferences){ columnCount = 3; columnGutter = "lp"; bottom = "6p" top = "4p"
// "left" в применении к страницам означает внутренний край; // "right" - внешний, left = "6р" right = "4р"
}
// Добавляем фрейм для нижнего колонтитула with(textFrames.add()){
geometricBounds = ["61р", "4р"., "62р", "45р"]; with (insertionPoints[0]){
contents = SpecialCharacters.sectionMarker; contents = SpecialCharacters.emSpace; contents = SpecialCharacters.autoPageNumber;
}
paragraphs.[0].justification = Justification.leftAlign;