複数ページのPDFファイルの指定範囲のページを抜き出しPDF形式で保存する

■プログラム説明(ソースコード説明)
 ai_pdfフォルダにあるsample.pdfの1〜3ページまでを抜き出して保存します。PDFの指定ページを開くにはPDFOpenOptionsオブジェクトを作成し、pageToOpenプロパティにページ番号を設定します。open()のパラメータに指定することで指定ページだけを開くことができます。ファイル保存時はPDFSaveOptionsオブジェクトを作成し保存オプションを設定します。保存ファイル名は「sample_ページ番号.pdf」になるように設定しsaveA()のパラメータとして指定します。保存し終わったらPDFを閉じてから処理を繰り返します。
 このままではページを選択するダイアログがでますので、ダイアログを出したくない場合には以下の命令を先頭に入れてください。

userInteractionLevel=UserInteractionLevel.DONTDISPLAYALERTS;

■ソースコード
startNo = 1; // 抽出開始ページ番号
endNo = 3; // 抽出終了ページ番号
fileObj = new File("/ai_pdf/sample.pdf");
pdfObj = new PDFOpenOptions();
pdfOpt = new PDFSaveOptions();
pdfOpt.compatibility = PDFCompatibility.ACROBAT5;

for (i=startNo; i<=endNo; i++)
{
pdfObj.pageToOpen = i;
open(fileObj, DocumentColorSpace.CMYK, pdfObj);
saveFile = new File("/ai_pdf/sample_"+i);
activeDocument.saveAs(saveFile, pdfOpt);
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}


■使い方
1:ファイルメニューからスクリプトを実行します。
2:フォルダ内にあるPDFファイルが開かれます。
3:指定ページが開かれ、PDF形式で保存されます。


■ポイント
 抜き出すページが存在しない場合はエラーで停止します。
 PDF形式で保存するだけでなくEPS、GIF、JPEG、SWF形式に保存することもできます。
 指定範囲でなく特定のページだけバラバラに抜き出したい場合は以下のように配列を利用します。

pageNo = [1,3]; // 抽出開始ページ
fileObj = new File("/ai_pdf/sample.pdf");
pdfObj = new PDFOpenOptions();
pdfOpt = new PDFSaveOptions();
pdfOpt.compatibility = PDFCompatibility.ACROBAT5;

for (i=0; i<pageNo.length; i++)
{
pdfObj.pageToOpen = pageNo[i];
open(fileObj, DocumentColorSpace.CMYK, pdfObj);
saveFile = new File("/ai_pdf/sample_"+pageNo[i]);
activeDocument.saveAs(saveFile, pdfOpt);
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}

■実際のスクリプトをダウンロード(sample.js.zip)