Photoshop CSでPDFの指定ページを連続(連番)保存

 Photoshop CSでPDFをページ指定して開き連番ファイルで保存してみます。PDFをページごとに分解でき自動的に保存できるので何か使い道があるかもしれません。以下が実際のサンプルです。テキストエディタで入力して保存してください。保存する際にファイル名の拡張子はjsにしてください。例えば「PDFsave.js」といった感じです。あとはPhotoshop CSのファイルメニューから「スクリプト」→「参照...」を選択して、先ほど保存したファイルを選択します。PDFの開始番号と終了番号を聞いてくるのでページ番号を入れて下さい。次に開くPDFを選択します。その後、どこに分解したファイルを保存するか聞いてくるのでフォルダを指定します。後は全自動で処理されます。

function openPDF(startPage, endPage)
{
fileRef = File.openDialog("PDFを選択して下さい");
folderPath = Folder.selectDialog("保存先フォルダを選択して下さい");
if ((folderPath != null) && (fileRef != null))
{
// PDFを開く際の保存オプション
pdfOpt = new PDFOpenOptions();
pdfOpt.antiAlias = true; // アンチエイリアスあり
pdfOpt.constrainProportions = true; // 縦横比を固定
//pdfOpt.width = 320; // 横幅を指定する場合
//pdfOpt.height = 240; // 縦幅を指定する場合
pdfOpt.resolution = 72;
pdfOpt.mode = OpenDocumentMode.RGB;
// PSD形式保存オプション
psdOpt = new PhotoshopSaveOptions();
psdOpt.alphaChannels = true;
psdOpt.annotations = true;
psdOpt.embedColorProfile = true;
psdOpt.layers = true;
psdOpt.spotColors = true;
for (i=startPage; i<=endPage; i++)
{
try{
pdfOpt.page = i;
open(fileRef,pdfOpt);
fname = i+".psd";
saveFile = new File(folderPath + "/" + fname);
activeDocument.saveAs(saveFile, psdOpt, true, Extension.LOWERCASE);
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
catch(e) { }
}
}
}
function setUnit(unt){ preferences.rulerUnits = unt; }
function getUnit(){ return preferences.rulerUnits; }

saveUnit = getUnit();
setUnit(Units.PIXELS); // 幅を指定する場合の単位
sPage = parseInt(prompt("最初のページ番号を入れて下さい",1));
ePage = parseInt(prompt("最後のページ番号を入れて下さい",10));
openPDF(sPage, ePage); // 指定範囲のページを開く
setUnit(saveUnit);


 サンプルでは連番でファイルが保存されますが、場合によっては1.psdでなく0001.psdのように先頭にゼロを付けて保存したい場合があります。この場合は

fname = i+".psd";

 という1行を消して、代わりに以下のように2行を入れてください。

str = "0000" + i;
fname = str.substr(str.length-4,4)+".psd";

 ちなみに3桁の場合は以下のようになります。

str = "000" + i;
fname = str.substr(str.length-3,3)+".psd";

 PDFを開く際のオプションについては前回を参照してください。




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