Photoshop CSでシリアル番号をつけて印刷

 シリアル番号を付けて印刷するのはIllustratorだけに限りません。Photoshopで作成したチケットの場合もあります。そこで今回はPhotoshop CSで自動的にシリアル番号を付けて印刷するサンプルを紹介します。

 まず、チケットを作成しましょう。最初のパターンは一枚の紙に1つだけチケットがある場合です。まず、Photoshop CSでシリアル番号の元になるテキストを入力し、サイズや色、フォントなどを設定します。そのレイヤーにserialというレイヤー名をつけます。
 あとは、以下のスクリプトをテキストエディタで入力し保存します。

docObj = activeDocument;
startNo = 1;
endNo = 3;
for (i=startNo; i<=endNo; i++)
{
docObj.artLayers["serial"].textItem.contents = i;
docObj.print(PrintEncoding.JPEG, SourceSpaceType.DOCUMENT, Intent.ABSOLUTECOLORIMETRIC);
}

 保存したスクリプトをPhotoshop CSで選択し実行させます。ファイルメニューから「スクリプト」→「参照...」で表示されるファイル選択ダイアログでファイルを選択してください。Illustratorと違って、毎回印刷ダイアログが表示されます。

 シリアルの開始番号は2行目の「startNo = 1;」の1を変更します。終了番号は3行目の「endNo = 3;」の3を変更します。
 チケットは1枚の紙に複数まとめて印刷するのが常です。このような場合には以下のようなスクリプトになります。

docObj = activeDocument;
startNo = 1;
endNo = 10;
step = 5;
for (i=startNo; i<=endNo; i+=step)
{
for (j=0; j<step; j++)
{
layName = "serial"+(1+j);
docObj.artLayers[layName].textItem.contents = i+j;
}
docObj.print(PrintEncoding.JPEG, SourceSpaceType.DOCUMENT, Intent.ABSOLUTECOLORIMETRIC);
}

 1枚の紙にいくつシリアルを付けるかを指定しているのがstep = 5;です。5の場合1枚の紙に5シリアルを付けるという事になります。そして、重要な事としてシリアルを付けるレイヤーを設定しておく必要があります。最初のものはレイヤー名をserialにしていましたが、複数枚の場合は

serial1
serial2
serial3
serial4
serial5
serial6
serial7
serial8
serial9
serial10

 のようにレイヤー名を付けて下さい。これさえ間違えなければ、Photoshop CSで簡単にシリアル番号の印刷を行うことができます。サイズやフォントなども自由に設定できます。

 Photoshop CSでは毎回印刷ダイアログが出て不便なので他のアプリケーションで印刷したい(iPhotoなど)場合には以下のようにシリアル番号を付けて保存する方法もあります。(これは1枚に1チケットの場合のものです)

folderPath = Folder.selectDialog("保存先フォルダを選択してください")
if(folderPath != null)
{
psdOpt = new PhotoshopSaveOptions();
psdOpt.alphaChannels = true;
psdOpt.annotations = true;
psdOpt.embedColorProfile = true;
psdOpt.layers = true;
psdOpt.spotColors = true;
docObj = activeDocument;
startNo = 1;
endNo = 3;
for (i=startNo; i<=endNo; i++)
{
docObj.artLayers["serial"].textItem.contents = i;
str = ""+docObj.name;
fname = str.split(".")[0]+i+".psd";
saveFile = new File(folderPath + "/" + fname);
activeDocument.saveAs(saveFile, psdOpt, true, Extension.LOWERCASE);
}
}

 複数毎の場合は以下のようになります。

folderPath = Folder.selectDialog("保存先フォルダを選択してください")
if(folderPath != null)
{
psdOpt = new PhotoshopSaveOptions();
psdOpt.alphaChannels = true;
psdOpt.annotations = true;
psdOpt.embedColorProfile = true;
psdOpt.layers = true;
psdOpt.spotColors = true;
docObj = activeDocument;
startNo = 1;
endNo = 10;
step = 5;
for (i=startNo; i<=endNo; i+=step)
{
for (j=0; j<step; j++)
{
layName = "serial"+(1+j);
docObj.artLayers[layName].textItem.contents = i+j;
str = ""+docObj.name;
fname = str.split(".")[0]+"_"+i+".psd";
saveFile = new File(folderPath + "/" + fname);
activeDocument.saveAs(saveFile, psdOpt, true, Extension.LOWERCASE);
}
}
}


[サンプルをダウンロード]