Настройки Illustrator можно прочитать и изменить из сценария. Каждая опция является ключом одного из четырех типов: Real, Integer, Boolean и String. Например, флажок Use Preview Bounds имеет логический тип, то есть принимает только два значения true
или false
.
Методы
Каждый тип данных имеет свой собственный метод. Чтобы прочитать текущее состояние:
app.preferences.getBooleanPreference(key) app.preferences.getIntegerPreference(key) app.preferences.getRealPreference(key) app.preferences.getStringPreference(key)
Чтобы записать новое значение:
app.preferences.setBooleanPreference(key, value) app.preferences.setIntegerPreference(key, value) app.preferences.setRealPreference(key, value) app.preferences.setStringPreference(key, value)
Например, сценарий, который переключает использование границ предварительного просмотра при каждом запуске:
var curState = app.preferences.getBooleanPreference(‘includeStrokeInBounds’); app.preferences.setBooleanPreference(‘includeStrokeInBounds’, !curState);
Проблемы
Добавляя методы для чтения и записи настроек, Adobe не задокументировала все возможные ключи для ExtendScript. Сообщество делится своими находками, например, разработчик Ten-A в своем блоге. Вы также можете найти ключи в файле AIPreferenceKeys.h из Adobe Illustrator SDK.
Даже если вы найдете точное название ключа, нет гарантии, что он будет работать правильно. Пример. В разделе «Единицы измерения» хранятся единицы измерения линеек, штрихов и шрифтов. Воспользуемся скриптом для изменения единиц измерения линеек и шрифтов в настройках.
app.preferences.setIntegerPreference(‘rulerType’, 6); // 6: px app.preferences.setIntegerPreference(‘text/units’,6); // 6: px
Старые единицы останутся на панелях Illustrator, пока вы не перезапустите его.
Также скрипт, в котором изменена система координат, будет работать некорректно. Вы должны перезапустить Illustrator после изменения флагов.
app.preferences.setBooleanPreference (‘isRulerOriginTopLeft’, true); app.preferences.setBooleanPreference (‘isRulerIn4thQuad’, true);