イラレのスクリプトでカレンダー画像を自動作成
私は毎月ある歯科医院のHPのカレンダー更新の作業をしています。
そのカレンダーはイラレで作成していて、毎月お客様からその月のお休みの日や予定を聞き、イラレを修正し画像を更新していました。
毎月同じような作業をしていて、いつもこの作業を自動化できないかと思っていたのですが、なかなか手を出せず、今回やっとそのカレンダー画像を自動で作成するようにしたので、その内容について書かせてもらいます。
環境
- Windows8.1 Pro
- Adobe Illustrator CS5
私がいつも手作業で作成していた画像はこんなものです。
今回私はイラレのスクリプト(JavaScript)で、画像を自動作成することにしました。 自動作成のスクリプトで私が行ったことはこの3つです。
- 入力ダイアログを表示
- オブジェクトの作成(日にちテキスト、休診日のマーク)
- 指定した年月にあわせ作成したオブジェクトの位置を設定
まず入力ダイアログの表示です。何月のカレンダーを作成するか入力できるようしました。 こんな感じで
txtTarget = prompt("作成するカレンダーの年月を入力(yyyyMM形式)",year + ('00' + month).slice(-2));
実行すると
表示されました!
同じように休診日を入力するダイアログ表示部分も入れました。
次に日にちのテキストオブジェクトを作成します。 テキストオブジェクトを作成するにはこんな感じで
docObj = activeDocument; textObj = docObj.textFrames.add(); textObj.contents = day.toString(); textObj.position = [x, y];
そして休診日のマークも作成。 休診日のマークは角丸四角形のオブジェクトとテキストのオブジェクトをグループ化しました。
pObj = docObj.pathItems.roundedRectangle(0,0,75,15,5,5); pObj.filled = true; pObj.stroked = false; pObj.fillColor = setColor(248,165,201); htextObj = docObj.textFrames.add(); htextObj.contents = "休診日"; text_fonts_obj = app.textFonts.getByName("KozGoPro-Regular"); htextObj.textRange.characterAttributes.textFont = text_fonts_obj; htextObj.textRange.characterAttributes.size = 12; htextObj.textRange.characterAttributes.fillColor = setColor(255,255,255); htextObj.position = [20,-1.5]; var grp = docObj.groupItems.add(); htextObj.move(grp,ElementPlacement.PLACEATEND); pObj.move(grp,ElementPlacement.PLACEATEND);
あとはオブジェクトを位置を入力した年月にあわせ調整します。
for (var i=0 ; i<days-1 ; i++){ colCnt = colCnt + 1; if(colCnt > 6){ colCnt = 0; rowCnt = rowCnt+1; } dpObj = textObj.duplicate(); dpObj.contents = (i+2).toString(); dpObj.position = [arrX[colCnt]-dpObj.width, arrY[rowCnt]]; }
できたので、試しに3月のカレンダーを木曜と第3日曜を休診日に設定して作成してみました。
まだ予定をいれたり、修正は必要ですが、これで更新が楽になりそうです!