通常,当您编写.jsx脚本以自动化Adobe产品(如InDesign,Illustrator或Photoshop)时,您可以从ExtendScript IDE编写,调试和执行脚本。是否可以绕过ExtendScript并从第三个程序运行脚本?
我编写了脚本来自动完成一些后效应的工作。我一直在从ExtendScript IDE运行脚本,但现在我希望用户从html表单中提供输入参数,然后当他单击提交按钮时,我想将用户输入传递给jsx脚本,然后自动运行脚本。
所以基本上我想从html文件中用html或javascript代码调用jsx代码
答案 0 :(得分:0)
这很棘手,但如果您不考虑html页面将运行脚本,而是由于html页面脚本正在寻找一些设置,那么可能会实现。
如果您使用的是Mac,则可以编写一个AppleScript来监控文件夹并在需要时运行jsx文件。
如果您可以让InDesign冻结,请考虑使用$ .sleep()让它定期检查文件夹。另一种方法是依赖AS3,以便在html端没有任何反应时使InDesign可用。
最后但并非最不重要的是,这些是灰色区域,因为脚本必须由用户在adobe软件的桌面版本中执行。您要实现的更多是关于服务器脚本处理。根据您的预算,您可以查看InDesign服务器解决方案。 Ai& amp;的服务器解决方案Ps虽然。
希望它有所帮助,
卢瓦克
答案 1 :(得分:0)
是的,它可行,但努力程度取决于您的平台。我提出的是客户端解决方案,正如Loic所提到的,如果你的目标是远程用户在服务器上点击你的网页来做这件事,那真的不行。您最好构建一个完成所有这些操作的Web服务,然后让HTML表单调用Web服务。
对于HTML表单情况,您需要在Windows上,并且您将执行JSX代码,使用封装在脚本标记中的VBScript或javascript(通过Microsoft JScript)代码从表单提供所需的参数/参数HTML文件。 VB / JS代码可以在脚本标记内,也可以通过脚本标记从外部VBS / JS文件中提取。使用此解决方案,您的HTML文件必须以扩展名" .hta"命名。不是" .htm"或" .html"。并且您可能想要在文件中添加一些额外的HTA元素标记。
详情请见:http://en.wikipedia.org/wiki/HTML_Application
HTA的好处是,与传统的HTML页面不同,浏览器对本地文件系统的安全限制被删除,因此您可以获得额外的访问权限,例如能够使用VBScript(而不仅仅是用于HTML页面的javascript)并使用COM对象。这里的诀窍是我们将使用Adobe应用程序的COM API来执行JSX文件。
如果在Mac上,我认为你没有类似的等价物。因此,您的替代选择是构建类似于HTML表单的GUI,但实际上是Mac的桌面应用程序(例如wxWidgets,Qt,本机Mac应用程序,Java GUI应用程序)。通过构建该GUI,它可以通过Applescript执行JSX,因为许多语言(Java,Python等)应该具有Applescript桥接接口。最糟糕的情况是,你可以shell执行一个Applescript,然后传递Applescript传递给实际JSX脚本文件的参数。
至于如何将参数传递给JSX文件并在ExtendScript IDE之外执行它,请参阅此SO帖子:
Is it possible to execute JSX scripts from outside ExtendScript?
我刚才提到的关于HTML表单或GUI应用程序的内容只是简单地将它与SO post解决方案连接起来。