クリエイター手抜きプロジェクト[306]Adobe Illustrator CS3/CS4/CS5編 シリアル番号をつけて印刷する/古籏一浩

投稿:  著者:  読了時間:6分(本文:約2,600文字)


今回は、2004年にデジクリに掲載した「Illustrator 10で作成したシリアル番号をつけて印刷するスクリプト」を、CS3〜CS5で動作するように改良したものです。
Illustrator 10の頃はインチキしないとシリアル番号を印刷できず、CS/CS2では日本語をまともに扱えませんでした。CS3以降はようやく普通にスクリプトを作成できるようになりました(それでもCS3は印刷まわりで一部不具合がありますが)。

それでは本題に入りましょう。コンサートなどのチケット、食事券、製品番号などで、シリアル番号をつけ印刷したい場合があります。このようなときにJavaScriptは非常に便利です。

スクリプトを実行する前に、Illustratorのドキュメントを開いておく必要があります。このIllustratorのドキュメントには、シリアル番号をつけるためのレイヤーを作成し、serialというレイヤー名をつけます。次に、そのレイヤーにテキストを入力しサイズやフォントなどを設定しておきます。

あとは以下のスクリプトを実行すれば指定した番号の数だけ印刷が行われます。




(function(){
var docObj = activeDocument;
var startNo = prompt("開始番号を入れてください",1);
if (!startNo){ return; }
var endNo = prompt("終了番号を入れてください",3);
if (!endNo){ return; }
for (var i=startNo; i<=endNo; i++){
docObj.layers["serial"].textFrames[0].contents = i;
var printObj = new PrintOptions(); // 印刷オプション設定
var colorOpt = new PrintColorManagementOptions(); // カラー設定
colorOpt.colorProfileMode = PrintColorProfile.SOURCEPROFILE;
colorOpt.name = "ColorMatch RGB";
colorOpt.intent = PrintColorIntent.RELATIVECOLORIMETRIC;
printObj.colorManagementOptions = colorOpt;
docObj.print(printObj);
}
})();

1ドキュメントに1シリアルということは滅多にないので、最大100までのシリアル番号に対応させたものが以下のスクリプトです。

これはあらかじめserial1、serial2といったようにレイヤーに「serial番号」の名前を付けておきます。serial1,serial2,serial3といった連番にしておいてください。番号が途切れると、そこでシリアル番号の割り当てを停止し印刷処理に入ります。

また、終了番号を超えた番号が割り当てられることがあります。これは1ドキュメントに割り当てるシリアル番号が多い場合に発生します。

(function(){
var docObj = activeDocument;
var startNo = prompt("開始番号を入れてください",1);
if (!startNo){ return; }
var endNo = prompt("終了番号を入れてください",3);
if (!endNo){ return; }
while(startNo <= endNo){
for(var n=1; n<=100; n++){ // 1枚に最大100までのシリアル番号
try{
docObj.layers["serial"+n].textFrames[0].contents = startNo;
startNo++;
}catch(e){}
}
var printObj = new PrintOptions(); // 印刷オプション設定
var colorOpt = new PrintColorManagementOptions(); // カラー設定
colorOpt.colorProfileMode = PrintColorProfile.SOURCEPROFILE;
colorOpt.name = "ColorMatch RGB";
colorOpt.intent = PrintColorIntent.RELATIVECOLORIMETRIC;
printObj.colorManagementOptions = colorOpt;
docObj.print(printObj);
}
})();


【古籏一浩】openspc@alpha.ocn.ne.jp
< http://www.openspc2.org/ >

Panasonicが誇るらしい(?)家庭用ビデオカメラX900M。ということで撮影してみました。TM700も出た当時はきれいだったんですが、見比べると相当違うようで......。

・X900Mで撮影した諏訪湖
< http://twitpic.com/8lhdcg >
・TM700で撮影した諏訪湖
< http://twitpic.com/8lhdu3 >

・毎度おなじみASCII.jpの連載
「iBooks AuthorでHTML5の電子書籍作ってみた」
< http://ascii.jp/elem/000/000/665/665232/ >

・クリエイター手抜きプロジェクト【2011年分まで用意しました】
< http://www.openspc2.org/projectX/ >

・改訂5版JavaScriptポケットリファレンス
< http://www.amazon.co.jp/dp/4774148199 >

・10日で覚えるHTML5入門教室
< http://www.amazon.co.jp/dp/4798124184 >

・ハイビジョン映像素材集
< http://www.openspc2.org/HDTV/ >

・Adobe Illustrator CS3 + JavaScript 自動化サンプル集
< http://www.openspc2.org/book/PDF/Adobe_Illustrator_CS3_JavaScript_Book/ >
吉田印刷所の「印刷の泉」でも購入できるようになりました。