1

通常,当您编写 .jsx 脚本以自动化 Adob​​e 产品(如 InDesign、Illustrator 或 Photoshop)时,您会从 ExtendScript IDE 编写、调试和执行脚本。是否可以绕过 ExtendScript 并从第三个程序运行脚本?

我编写了脚本来自动化一些后效工作。我一直在从 ExtendScript IDE 运行脚本,但是现在我希望用户从 html 表单中提供输入参数,然后当他单击提交按钮时,我想将用户输入传递给 jsx 脚本,然后自动运行脚本。

所以基本上我想从 HTML 或用 html 文件编写的 JavaScript 代码调用 jsx 代码

4

2 回答 2

0

是的,这是可行的,但工作量取决于您的平台。正如 Loic 所提到的,我提出的是客户端解决方案,如果您的目标是让远程用户在服务器上访问您的网页来执行此操作,那实际上是行不通的。您最好构建一个完成所有这些工作的 Web 服务,然后让 HTML 表单调用该 Web 服务。

对于 HTML 表单案例,您需要在 Windows 上执行 JSX 代码,使用封装在 HTML 文件的脚本标记中的 VBScript 或 javascript(通过 Microsoft JScript)代码从表单中提供所需的参数/参数。VB/JS 代码可以在脚本标签中,也可以通过脚本标签从外部 VBS/JS 文件中提取。使用此解决方案,您的 HTML 文件必须以扩展名“.hta”而不是“.htm”或“.html”命名。您可能希望在文件中添加一些额外的 HTA 元素标签。

有关详细信息,请参阅:http ://en.wikipedia.org/wiki/HTML_Application

HTA 的好处是,与传统 HTML 页面不同,浏览器对本地文件系统的安全限制被删除,因此您可以获得额外的访问权限,例如能够使用 VBScript(而不仅仅是用于 HTML 页面的 javascript)和使用 COM 对象。这里的技巧是我们将使用 Adob​​e 应用程序的 COM API 来执行 JSX 文件。

如果在 Mac 上,我相信你没有类似的等价物。因此,您的替代选择是构建一个类似于 HTML 表单但实际上是 Mac 桌面应用程序的 GUI(例如 wxWidgets、Qt、本机 Mac 应用程序、Java GUI 应用程序)。构建了 GUI 后,它可以通过 Applescript 执行 JSX,因为许多语言(Java、Python 等)都应该有 Applescript 桥接接口。最坏的情况是,你可以通过 shell 执行一个 Applescript,将 Applescript 然后传递给实际 JSX 脚本文件的参数传递给它。

至于如何将参数传递给 JSX 文件并在 ExtendScript IDE 之外执行它,请参阅此 SO 帖子:

是否可以从 ExtendScript 外部执行 JSX 脚本?

我刚刚提到的关于 HTML 表单或 GUI 应用程序的内容只是将其连接到 SO post 解决方案。

于 2015-04-15T19:29:55.937 回答
0

这很棘手,但如果您不认为 html 页面将运行脚本,而是认为脚本正在寻找一些设置以显示由于 html 页面,那么它可能会实现。

如果您使用的是 mac,您可以编写一个 applescript 来监控文件夹并在需要时运行 jsx 文件。

如果您有能力冻结 InDesign,请考虑使用 $.sleep() 让它定期检查文件夹。另一种方法是依靠 AS3,以便在 html 端没有任何事情发生时使 InDesign 可用。

最后但同样重要的是,这些是灰色区域,因为脚本必须由用户在 adobe 软件的桌面版本中执行。您想要实现的更多是关于服务器脚本处理。鉴于您的预算,您可以看看 InDesign 服务器解决方案。虽然没有适用于 Ai & Ps 的服务器解决方案。

希望能帮助到你,

洛伊克

于 2012-06-27T23:15:54.137 回答