Да, вы можете использовать функцию этикеток для сохранения любой информации в любых объектах InDesign. Чтобы сохранить элементы из диалогов, к которым вы хотите получить доступ при следующем запуске скрипта, имеет смысл сохранить информацию напрямую в объекте приложения, чтобы она была доступна даже после закрытия и перезапуска InDesign (как в отличие от сохранения его в Документе, который может не быть открыт в следующий раз, когда пользователи будут использовать сценарий).
Общий рабочий процесс будет примерно таким:
// after the user closes the dialog, save the settings they made to an object
var userChoice = {
// save any info from the dialog, for example some settings about underlines
underline: checkbox3.value,
underlineWeight: edittext6.text,
underlineOffset: edittext7.text,
// etc. ...
};
// insert the given information into a script label, pick any arbitrary name
// use .toSource() to stringify the object in the process, labels can only save strings
app.insertLabel("ha_a_usersettings", userChoice.toSource());
Теперь информация сохраняется в самом приложении. В следующий раз, когда вы запустите сценарий, вы можете получить информацию из метки следующим образом:
var savedSettings = eval(app.extractLabel("ha_a_usersettings"));
Теперь вы можете продолжить и предварительно заполнить диалоговое окно свойствами, которые есть в переменной savedSettings
.