前回のスクリプトは、実行するといきなり印刷されます。いきなり印刷されるのは困る場合もあると思うので、今回は印刷せずに、シリアル番号を割り振った後にAIファイルで保存するように変更したスクリプトを掲載します。必要となるファイルや、レイヤー名の命名規則などは前回と同じです。
以下のスクリプトは、実行するとAIファイルを保存するフォルダを聞いてきます。ファイルは連番ファイルで保存され0002.aiのように4桁の番号がつきます。
(function(){
var saveFolder = Folder.selectDialog("保存先フォルダを指定してください");
if (!saveFolder){ return; }
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 num = ("000"+i);
num = num.substr(num.length-4, 4);
var saveFile = new File(saveFolder+"/"+num+".ai");
docObj.saveAs(saveFile);
}
})();
次のスクリプトは、1ドキュメントに複数のシリアル番号がある場合に対応させたものです。前回の2番目のスクリプトを、連番ファイルとして保存するようにしたものです。注意点などは前回と同じです。
(function(){
var saveFolder = Folder.selectDialog("保存先フォルダを指定してください");
if (!saveFolder){ return; }
var docObj = activeDocument;
var startNo = prompt("開始番号を入れてください",1);
if (!startNo){ return; }
var endNo = prompt("終了番号を入れてください",3);
if (!endNo){ return; }
var pageNo = 1; // ファイル名末尾煮付けるページ番号
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 num = ("000"+pageNo);
num = num.substr(num.length-4, 4);
var saveFile = new File(saveFolder+"/"+num+".ai");
docObj.saveAs(saveFile);
pageNo++;
}
})();
[
サンプルをダウンロード]