今回は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);
}
})();
[
サンプルをダウンロード]