javascript - 我可以使用 Electron 应用程序/JavaScript 控制/编写 InDesign 脚本吗?
问题描述
目前正在研究 Electron,最终目标是控制其他应用程序(如 InDesign)中的动作/脚本。
目前,我的工作流程的一部分使用 Filemaker 来触发控制操作/更改 InDesign 文档的小程序(然后通过 AppleScript 将结果反馈给 filemaker)。
使用 Electron 是否有类似的可能 - 即在 Electron 中触发一个事件(通过用户操作或监视文件夹等),然后使用电子/JavaScript 来“告诉 InDesign”执行一些操作并获得反馈以触发 Electron 中的进一步操作?
解决方案
我没有使用过 Electron,但我们使用nwjs进行了一些开发,这很相似。我们设置它的方式是让 nwjs 执行 VBS 文件(在 Windows 上可以使用命令行可执行 CScript 或 WScript。我不确定 MAC 或 Linux)。VBS 文件要么包含直接在 InDesign 中运行的脚本,要么使用 vbs DoScript 命令来运行外部 jsx 文件,甚至是它们的组合。如果没有 ExtendScript 或 VBS,外部 JSX 文件显然无法直接在 InDesign 中运行。
总之:NWJS -> VBS (-> JSX) -> InDesign。
捕获响应有点麻烦,因为没有直接的方法(我知道)来捕获 jsx 在 InDesign 中运行的时间。但是我们使用了两种不同的方法——一种是在外部数据库中捕获响应(并让 NWJS 读取数据库直到脚本完成),另一种是在 TEMP 位置简单地创建一个文件并让 NWJS 等待它出现。不幸的是,这些都不是异步的,所以如果你需要更动态的东西,它需要更多的工作。
推荐阅读
- javascript - 用 Jest 模拟 NextJS 路由器事件
- ios - Capacitor iOS chunk.js 错误反应网站
- mysql - 重启服务器后无法启动 MariaDB 10.3 数据库服务器
- javascript - 从右到左的冰柱树
- python - PyPDF2 模块是用 pip 安装的,它可以在命令行中工作,但在 IDE 中不起作用
- ubuntu - 如何在arm上正确编译汇编语言程序?
- php - CakePHP 2.10:循环和使用 Cache::read() 时的内存泄漏
- javascript - Javascript 计算器。显示 ' . ' 和屏幕上的操作标志
- javascript - 添加包时删除依赖项
- python - 解码从 SentenceTransformer 派生的句子表示