Настройки 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);