複数ファイル/PDFを1ファイルにまとめる

複数の画像ファイルを1ファイルにまとめたい場合があります。とりあえず、商品画像をたくさん読み込ませておいて後で位置を手作業で行うような場合です。以下のスクリプトは指定されたフォルダ内にあるJPEG形式の画像データを全部読み込み画像ごとに別レイヤーにするものです。実行前には、あらかじめ土台となるドキュメントを開いておく必要があります。

folderObj = Folder.selectDialog("フォルダを選択してください");
fileList = folderObj.getFiles("*.jpg");
for (i=0; i<fileList.length; i++)
{
fileObj = new File(fileList[i]);
open(fileObj);
activeDocument.selection.selectAll();
activeDocument.selection.copy();
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
activeDocument.paste();
}

JPEGでなくGIFにしたい場合には

fileList = folderObj.getFiles("*.jpg");

fileList = folderObj.getFiles("*.gif");

にします。Photoshop PSDでならば

fileList = folderObj.getFiles("*.psd");

とします。画像の形式を問わずに読み込ませたい場合は以下のように()の中に何も指定しないようにします。

fileList = folderObj.getFiles();

ただ、画像形式によっては確認のダイアログがなどが出るので逐次確認作業が必要になる場合があります。
単純な画像ファイルでなくPDF内のページを個別にレイヤーにすることもできます。以下のスクリプトは開始ページと終了ページを入力すると、その間のページをレイヤーとして1つのドキュメントにするものです。

fileObj = File.openDialog("PDFを選択してください");
pdfOpt = new PDFOpenOptions();
pdfOpt.antiAlias = true;
pdfOpt.constrainProportions = false;
pdfOpt.width = 600;
pdfOpt.height = 800;
pdfOpt.mode = OpenDocumentMode.RGB;
pdfOpt.resolution = 72;
sPage = parseInt(prompt("開始ページ",1));
ePage = parseInt(prompt("終了ページ",4));
for (i=sPage; i<=ePage; i++)
{
pdfOpt.page = i;
open(fileObj,pdfOpt);
activeDocument.selection.selectAll();
activeDocument.selection.copy();
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
activeDocument.paste();
}

一番上に最後のページが表示されるのではなく一番上のレイヤーが最初のページになるようにするには

for (i=sPage; i<=ePage; i++)

for (i=ePage; i>=sPage; i--)

に変更してください。解像度を300にしたい場合は

pdfOpt.resolution = 72;

pdfOpt.resolution = 300;

にしてください。横幅と縦幅を変更したい場合は以下の2行の数値を変えてください。

pdfOpt.width = 600;
pdfOpt.height = 800;



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