InDesign всегда возвращает координаты и другие свойства, имеющие размерность, в тех единицах, которые установлены по умолчанию. При этом нетрадиционные представления величин, такие как "1р6" и им подобные, автоматически конвертируются в традиционные (в нашем случае - в 1,5). Сделано это во избежание потенциальных проблем при выполнении арифметических действий (например, при сложении "1р6" с "3"), в то же время 1,5 + 3 даст корректный результат - 4,5.

Если вам предстоит выполнение арифметических действий, можно изменить единицы измерения на нужные на период работы скрипта, а впоследствии прежние значения восстановить. Альтернативный вариаит- явное задание требуемой единицы (табл. 4.1).

Таблица 4.1. Допустимые единицы измерения в InDesign

Сокращение

Обозначение

Пример

с

Цицеро

1.4с

cm

Сантиметр

,0635cm

i (in)

Дюйм

,25i

mm

Миллиметр

6.35mm

Pt

Пика

1р6

P

Типографская точка

18pt

Тип размерности хранится как свойство viewPreferences объекта application.viewpreferences, который, в свою очередь, также является объектом с двумя свойствами: для горизонтального направления -

horizontalMeasurementUnits И вертикального - verticalMeasurementUnits. Возможные значения:

MeasurementUnits.agates;

MeasurementUnits.picas;

MeasurementUnits.points;

MeasurementUnits.inches;

MeasurementUnits.inchesDecimai;

MeasurementUnits.centimeters;

MeasurementUnits.ciceros;

MeasurementUnits.custom.

Объект MeasurementUnits необходимо указывать обязательно.

Изменение настроек, установленных в приложении по умолчанию, происходит так, как показано в листинге 4.10.

Листинг 4.10. Изменение настроек приложения

var myDocument = app.activeDocument; with(myDocument.viewPreferences){

horizontalMeasurementUnits = MeasurementUnits.points; verticalMeasurementUnits = MeasurementUnits.points;

I

Если необходимо изменить единицы измерения только временно, на период выполнения каких-то операций, потом потребуется восстановить значения, используемые по умолчанию (листинг 4.11).

Листинг 4.11. Изменение и восстановление настроек приложения

var myDocument = app.activeDocument with (myDocument.viewPreferences) i

// Запоминаем текущие установки

var myOldXUnits = horizontalMeasurementUnits;

var myOldYUnits = verticalMeasurementUnits;

// Устанавливаем новые

horizontalMeasurementUnits = MeasurementUnits.points; verticalMeasurementUnits = MeasurementUnits.points;

I

II Здесь выполняется основной код

II Восстанавливаем прежние значения with (myDocument.viewPreferences){

tr-{

horizontalMeasurementUnits = myOldXUnits; verticalMeasurementUnits = myOldYUnits;

)

catch (myError)

{

alert("Ошибка восстановления прежних единиц измерения");

}

}

На случай непредвиденных ситуаций в процессе отладки скрипта желательно постоянно пользоваться конструкцией try{) catch (err) {}- она не даст скрипту "зависнуть", а лишь проинформирует вас о необходимости более тщательной проверки условий работы скрипта.


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