ごんれのラボ

iOS、Android、Adobe系ソフトの自動化スクリプトのことを書き連ねています。

IllustratorでJavaScript その2

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はやりません!」(苦笑)