Vulcan.jsを使用したAdobeのソフト同士の通信
html, Illustrator, javascript, Photoshop
何度かNode.jsを通じたソフトの通信について投稿しましたがどうもCEPライブラリーのVulcan.jsをを使用すればもっと簡単にできるらしいのでPhotoshopとIllustratorの簡単な通信をやってみました。
ちなみにVulcan.js自体はここから入手できます。 VsCodeのCC Extension Builder 等ではデフォルトで用意してくれないのでダウンロードしてください。メッセージを送る際に送信側のパネル自身のIDが必要なのでcsInterfaceから取得します。
VulcanMessageオブジェクトにパネルIDとメッセージを渡して送信します。
IDでメッセージの発信元を判別するので後ほど受け取るパネル側でもIDを指定して指定したID側からのメッセージを待ち受けします。
ちなみにメッセージを送信する前に送信側のソフトが立ち上がっているか確認する事もできます。isAppRunnningメソッドに対象のソフト名を渡します。
ちなみにIllustratorの場合は全て小文字で”illustrator”でした。こちらのドキュメントを見る限り細かいバージョンも指定できるみたいです。
次に待ち受け側のパネルですが送信側のIDからのメッセージをEventListenerでイベントの登録をします。
これで簡単な送受信ができるようになります。多分Nodeでやるよりも簡単ではないかと。ソフトウェアの立ち上がりやインストールも確認できるらしいので送信前のエラーを避ける事も簡単です。イベントの関数にhandleEventが使えないのがやや不便。コードは以下からご覧ください。