IllustratorでJavaScript その2。
ちょっと必要に迫られてIllustratorCS2でJavaScriptのお勉強。
なぜInDesignと用語を統一してくれないのかと軽く憤りを感じたり。
突き詰めればいろいろできるんだろうけど、ページものメインの私としてはInDesign優先にならざるを得ないというのが正直な感想。
さて。
書いてみたのは「テキストフレームに文字を流し込む」というシンプルなもの。
これだけでも結構時間を食ってしまった。
まず、テキストフレームに名前をつける。
IllustratorにはInDesignのような「スクリプトラベル」ウインドウが実装されていないので、オブジェクトに名前をつけるところからJavaScriptで書かないといけない(鬱)
スクリプトは下記。
//選択しているオブジェクトにhonbunという名前をつける
var docObj = activeDocument ;
var nameObj = docObj.selection ;
nameObj.name = "honbun" ;
この短いスクリプトでさえもInDesignとの違いに戸惑わされました(^^;
まぁね、リファレンスとか読めばわかるんですけどね、でもね、あんなの読み解けない訳ですよ。
で、どこで戸惑ったかというと。
InDesign:app.activeDocument → Illustrator:activeDocument
InDesign:app.selection[0] → Illustrator:docObj.selection
また微妙に違うから腹が立つんだな、これが。
盛大に違ってくれればむしろ覚えやすいのに~。
で、名前を付けたオブジェクトに文字を流し込むスクリプトは下記。
//文字を流し込む
var docObj = activeDocument ;
//とりあえずフレーム総当たり
for (i = 0 ; i switch (docObj.textFrames[i].name) { case "title" : docObj.textFrames[i].textRange.contents = "titleだよ" ; break ; case "honbun" : docObj.textFrames[i].textRange.contents = "honbunだよ" ; break ; case "number" : docObj.textFrames[i].textRange.contents = "00" ; break ; default : break } }
あとはテキストを1行ずつ読み込んで、とかやればそれなりにできそう。
やってみた結果、決定したこと。
「IllustratorでJavaScriptはやりません!」(苦笑)