要点:
有没有办法使用execute()函数将参数传递给Python脚本,让Python脚本在执行时使用参数,然后将结果返回到ExtendScript?
上下文: 我正在为Illustrator构建一个脚本,该脚本必须查询Web服务,处理生成的XML文件,并将结果返回给用户。如果我使用其中一个支持Socket功能的应用程序,这很容易,但Illustrator却没有。我的下一个想法是,我可以在Python中实现HTTP请求和XML解析。我对如何弥合两者感到茫然。
答案 0 :(得分:2)
我不得不做这样的事情来从Photoshop和Illustrator运行外部PNG处理器。 这些应用程序都没有能力从ExtendScript执行外部程序。(参见选项2).Adobe Bridge的app
对象具有system
方法,可在系统中执行命令贝壳。使用BridgeTalk
对象,可以从Illustrator远程调用该方法。但是,您只能获得退出代码。因此,您需要将程序的输出重定向到文件,然后在脚本中读取该文件。
以下是使用BridgeTalk
和Adobe Bridge运行外部程序的示例:
var bt = new BridgeTalk();
bt.target = 'bridge';
bt.body = 'app.system("ping -c 1 google.com")';
bt.onResult = function (result) {
$.writeln(result.body);
};
bt.send();
我后来发现了这个,不敢相信我错过了它。 File
类具有execute
实例方法,可以打开或执行该文件。它可能适用于您的目的,虽然我自己没有尝试过。
答案 1 :(得分:0)
Extendscript支持Socket,以下是代码片段
reply = "";
conn = new Socket;
// access Adobe’s home page
if (conn.open ("www.adobe.com:80")) {
// send a HTTP GET request
conn.write ("GET /index.html HTTP/1.0\n\n");
// and read the server’s reply
reply = conn.read(999999);
conn.close();
}