我想将一个VB程序重构为ExtendScript,以自动化Adobe Illustrator CS4中的某些绘图,但需要从数据库中读取。是否可以使用ExtendScript从数据库中读取?怎么样?
答案 0 :(得分:4)
是的,ES可以读取CSV。只需使用逗号描述格式化数据库。
这是一个应该做的技巧:
function readPref (thePath) {
if (File(thePath).exists == true) {
var file = File(thePath);
file.open("r");
file.encoding= 'BINARY';
var theText = file.read();
file.close();
return String(theText).split(",")
}
};
应返回一个包含所需内容的数组。让VB导出一个数据库,然后用它来读取它。 donezo。
答案 1 :(得分:2)
Illustrator脚本引擎没有提供直接读取外部数据的任何机制,但是你有几种方法可以做到这一点......
答案 2 :(得分:2)
我已经成功使用了一些不同的解决方案: 创建一个可以访问您的数据库的Web服务,然后从ExtendScript使用http连接来使用服务(从那里你可以做任何你想做的事情。)
答案 3 :(得分:1)
我的理解是你需要在你的VB代码中使用ExtendScript来'doScript()'。 ExtendScript没有自己的任何真正的数据库连接。但我熟悉那些使用VB代码连接数据库并返回结果的人。 ExtendScript有doScript方法来运行VB代码。接下来的技巧是找到一种方法将数据恢复到ExtendScript以告诉Adobe应用程序该做什么。据我所知,.doScript没有一种很好的方式来接受嵌入代码的结果。所以我听到人们所做的是以下几点之一:
HTH
Jon S. Winters, ExtendScript支持, 电子出版支持
答案 4 :(得分:0)
你是否需要将VB重构为ExtendScript 100%(没有VB代码,所有的ExtendScript),我想最简单的解决方案是这样的:
有一个调用ExtendScript的VB / VBScript包装器,这个包装器处理数据库交互并将数据传回&发表于ExtendScript。这使您可以简单地重用数据库代码,重用VB中的内容,并使ExtendScript保持简单。
您可以使用Adobe应用程序的COM API从VB / VBScript调用ExtendScript,它具有从ExtendScript plus doJavascript()方法获取的绘图的所有方法,用于执行javascript(或更实际的ExtendScript)代码。同样的doJavascript()方法可用于引入ExtendScript JSX文件而不是javscript代码片段。您可以在相关的SO帖子中找到更多详细信息:
Is it possible to execute JSX scripts from outside ExtendScript?
查看特定于Windows的答案。提出这个问题&解决方案进一步它也适用于其他平台(Mac,Python,Perl等),它不必用于VB和Windows,相同的方法可用于通过Windows在Windows外部与ExtendScript交互或Mac上的Applescript,适用于COM / Applescript兼容(或接口)的任何语言。