将 InDesign ScriptUI 选项保存在文件中并在下一个 运行 中加载

save InDesign ScriptUI options in file and load in the next run

我在 InDesign 脚本中构建了一个具有任何选项的对话框。

我想将用户选择的设置保存在一个文件中(例如在一个名为 setting.ini 的文件中)不需要在下一个 运行 和相同的设置中重新调整已为对话框启用。

有这种可能吗?

是的,您可以使用标签功能将任何信息保存到任何 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 变量中的属性预填充对话框。