Adobe Illustrator CS4 での描画を自動化するために VB プログラムを ExtendScript にリファクタリングしたいのですが、データベースから読み取る必要があります。ExtendScript を使用してデータベースから読み取ることは可能ですか? どのように?
5 に答える
はい、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 でデータベースをエクスポートし、それを使用してそれを読み取るだけです。ドネゾ。
Illustratorスクリプトエンジンには、外部データを直接読み取るメカニズムはありませんが、これを行うにはいくつかの方法があります...
- データベースに接続してVBスクリプトを生成する外部プログラムを作成し、Illustratorを使用して「生成された」スクリプトを実行します。これは私が行っていた古い方法です。
- cs3以降の新しいScriptUIは、IllustratorJSエンジンを駆動するためのインターフェイスとしてフラッシュswfを含むウィンドウを開くことを提供します。xmlを読み取ったり、Webサービスを呼び出したり、Flashコンテンツ内でFlashRemotingを実行したりできます。これらのツールセットに慣れているかどうかはわかりません。
私がうまく使用している別のソリューションがあります:DBにアクセスできるWebサービスを作成し、ExtendScriptからhttp接続を使用してサービスを消費します(そして、そこからほとんど何でもできます) .
私の理解では、VB コードで ExtendScript を「doScript()」に使用する必要があるということです。ExtendScript には、独自の実際のデータベース接続はありません。しかし、データベースに接続して結果を返す VB コードを持っている人はよく知っています。ExtendScript には、VB コードを実行するための doScript メソッドがあります。その秘訣は、データを ExtendScript に戻して、Adobe アプリケーションに何をすべきかを伝える方法を見つけることだと思われます。私の知る限り、.doScript には、埋め込まれたコードの結果を受け入れる適切な方法がありません。だから私が人々がしていると聞いたのは、いくつかのことの1つです:
- VB コードで、ExtendScript コードが読み取って解析できるテキスト ファイルを作成します。
- VB コードで、Adobe Illustrator ドキュメントに「ScriptLabel」を追加します。次に、ExtendScript を使用して同じラベルを読み取ります。これは実際にはテキスト ファイルの書き込みと同じですが、ファイルがないだけです。
HTH
Jon S. Winters、ExtendScript サポート、電子出版サポート
VB を ExtendScript 100% (VB コードなし、すべて ExtendScript) にリファクタリングする必要があるかどうかに関係なく、最も簡単な解決策は次のようなものです。
ExtendScript を呼び出す VB/VBScript ラッパーを使用すると、このラッパーがデータベースとのやり取りを処理し、データを ExtendScript にやり取りします。これにより、VB にあるものを再利用してデータベース コードをシンプルに保ち、ExtendScript をシンプルに保つことができます。
Adobe アプリの COM API を使用して、VB/VBScript から ExtendScript を呼び出すことができます。COM API には、ExtendScript から取得する描画用のすべてのメソッドと、javascript (より現実的には ExtendScript) コードを実行するための doJavascript() メソッドがあります。これと同じ doJavascript() メソッドを使用して、javascript コードのスニペットではなく、ExtendScript JSX ファイルを取り込むことができます。関連する SO 投稿で詳細を確認できます。
ExtendScript の外部から JSX スクリプトを実行することは可能ですか?
Windows固有の回答を見てください。この質問と解決策をさらに進めると、他のプラットフォーム (Mac、Python、Perl など) でも機能します。VB と Windows である必要はありません。同じアプローチを使用して、COM 経由で ExtendScript と外部的に対話できます。 Windows または Mac 上の Applescript であり、COM/Applescript と互換性がある (またはインターフェイスしている) 任意の言語で動作します。