Amazonで商品を見るセール会場へ

Photoshopスクリプト(jsx)│複数ページのPDFをレイヤーとして読み込む方法

Adobe XDや他のデザインツールで作成したPDFをPhotoshopに取り込む際、各ページをレイヤーとして読み込みたい場面があります。

この記事では、複数ページのPDFを1ページずつ画像化し、レイヤーにまとめる手順を解説します。

文字やベクターを元の編集可能な要素として取り込む処理ではありません。

掲載コードは300 ppi・CMYK・8bit・トリムボックス指定です。2026年10月29日に、PDFOpenOptionsの警告抑制プロパティ名をAdobeのJavaScript Scripting Reference 2020に合わせ、supressWarningsからsuppressWarningsへ修正しました。以下の10月16日の実機記録は修正前のコードによるもので、この1行を直した版は実機で再実行していません。

2026年10月16日に、Adobe Photoshop 2026(27.11.0)とWindows 11 Pro(10.0.26200)で、記事のコードを練習用の3ページのPDFに使い、3ページが3枚のレイヤーになることを確かめました。

ページの大きさが違うPDFの扱いと、実行後にPhotoshopに残る設定についても、結果を追記しています。

複数ページのPDFをPhotoshopの各レイヤーとして読み込むイメージ。
目次

Adobe XDからのPDF出力手順

  1. Adobe XDでデザインを作成します。
PDF出力の元となるデザインをAdobe XDで作成している画面。
  1. [書き出し] > [すべてのアートボード] > [単一のPDFファイル] を選択してPDFを出力します。
Adobe XDのメニューから書き出し、すべてのアートボード、単一のPDFファイルを選択してPDFを出力する画面。

Adobe XDからの書き出しは、今回は試していません。

下の確認では、別のツールで作った練習用のPDFを使いました。

スポンサーリンク

PDFをレイヤーとしてPhotoshopに読み込む手順

1. スクリプトの準備

先に作業中の文書を保存し、少ないページ数のPDFで試してください。

実行前のダイアログ設定と背景色を控えます。

このコードはPDFの選択前に設定を変え、キャンセルしても戻しません。

下記のコードをテキストエディタに貼り付け、ファイル名を「PDF_Pages_to_Layers.jsx」として保存します。

Photoshopの他の操作については、関連記事のまとめも参照してください。

PDF_Pages_to_Layers.jsx

#target photoshop
app.bringToFront();
displayDialogs = DialogModes.NO;

var myMaxPages = 100;
var myCounter = 1;
var myResolution = 300;
var myColor = OpenDocumentMode.CMYK;

app.backgroundColor.rgb.red = 255;
app.backgroundColor.rgb.green = 255;
app.backgroundColor.rgb.blue = 255;

var _pdfDatei = File.openDialog("PDFファイルの選択");
var myDatei = "" + _pdfDatei;
var myEndung = myDatei.substr(myDatei.length-4,4);

if (myEndung !== ".pdf") {
    alert("選択されたPDFがありません。", "ファイル選択エラー");
} else {
    var pdfOpenOptions = new PDFOpenOptions;
    pdfOpenOptions.antiAlias = true;
    pdfOpenOptions.mode = myColor;
    pdfOpenOptions.bitsPerChannel = BitsPerChannelType.EIGHT;
    pdfOpenOptions.resolution = myResolution;
    pdfOpenOptions.suppressWarnings = true;
    pdfOpenOptions.cropPage = CropToType.TRIMBOX;
    pdfOpenOptions.page = myCounter;

    open(_pdfDatei, pdfOpenOptions);
    var myDocument1 = app.activeDocument;
    var myLayerName = app.activeDocument.name;
    myDocument1.activeLayer.name = myLayerName;

    for (myCounter = 2; myCounter < myMaxPages; myCounter++) {
        try {
            pdfOpenOptions.page = myCounter;
            open(_pdfDatei, pdfOpenOptions);
            myLayerName = app.activeDocument.name;
            app.activeDocument.activeLayer.name = myLayerName;
            app.activeDocument.selection.selectAll();
            app.activeDocument.selection.copy(true);
            app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
            app.activeDocument = myDocument1;
            myDocument1.paste();
            myDocument1.activeLayer.name = myLayerName;
        } catch (e) {
            alert("Done");
            myCounter = myMaxPages;
        }
    }
}
  1. スクリプトファイルを保存し、PhotoshopのPresets内にあるScriptsフォルダに配置します。C:\Program Files\Adobe\Adobe Photoshop CC\Presets\Scripts
  2. 配置後、Photoshopを再起動します。

Photoshop 2026では、フォルダー名は「Adobe Photoshop 2026」で、C:\Program Files\Adobe\Adobe Photoshop 2026\Presets\Scripts にありました。

[ファイル] > [スクリプト] > [参照] から実行するだけなら、このフォルダーに置かなくても動きました。

今回は作業用のフォルダーに保存したまま実行しています。

Scriptsフォルダーに置いてメニューの一覧に出す方法と、置いた後の再起動は、今回は試していません。

2. スクリプトの実行

  1. Photoshopを起動します。
  2. [ファイル] > [スクリプト] > [参照]からPDF_Pages_to_Layers.jsxを選択して実行します。
  3. 読み込みたいPDFファイルを選択すると、各ページが個別のレイヤーとして自動で読み込まれます。
Photoshopでスクリプトを実行し、選択した複数ページのPDFが個別のレイヤーとして自動で読み込まれた画面。

Photoshop 2026で3ページのPDFを読み込んだ結果

2026年10月16日に、Adobe Photoshop 2026(27.11.0)とWindows 11 Pro(10.0.26200)で、記事のコードを変えずに保存して試しました。

読み込んだのは、1ページが4×3インチで、ページごとに色と「PAGE 1」〜「PAGE 3」の文字を変えた、練習用の3ページのPDFです。

[ファイル] > [スクリプト] > [参照] でスクリプトを選ぶと、「PDFファイルの選択」という画面が開きます。

PDFを選んで[OK]をクリックすると、2ページ目以降が別のタブで開いては閉じ、最後に「スクリプト警告」という小さな画面に「Done」と表示されました。

[OK]で閉じると、1つのドキュメントに3枚のレイヤーができていました。

確かめたこと結果
レイヤーの数3枚(PDFのページ数と同じ)
レイヤーの名前sample-3pages-1.pdf〜sample-3pages-3.pdf(ファイル名にページ番号が付く)
重なり順最後のページが一番上、1ページ目が一番下
各レイヤーの中身下から赤・緑・青で、PDFの1〜3ページ目と一致
位置3枚ともカンバスにぴったり重なり、ずれなし
ドキュメント名前はsample-3pages-1.pdfで未保存、1200×900 px、300 ppi
カラーモードCMYK、8 bit/チャンネル
Photoshopで3ページのPDFをスクリプトで読み込み、レイヤーパネルにsample-3pages-1.pdfからsample-3pages-3.pdfまでの3枚のレイヤーが並んだ画面
2026-10-16撮影。Adobe Photoshop 2026 (27.11.0)、Windows 11 Pro (10.0.26200)。練習用の3ページのPDFを記事のスクリプトで読み込んだ実機画面。レイヤーパネルに3ページ分のレイヤーが並び、一番上の3ページ目(青)がカンバスに表示されている。

3枚とも表示された状態なので、下のページを見るときは、上のレイヤーの目のアイコンで表示を切り替えます。

読み込んだ直後のドキュメントは未保存です。元のPDFとレイヤー数・順番・各ページの内容を照合したら、[ファイル]→[別名で保存]で新しい名前を指定し、Photoshop(PSD)形式と[レイヤー]を選んで保存します。開き直してページごとのレイヤーが残っていることを確認してください。この保存操作の案内は今回実機では再確認していません。

解像度とカラーモードは、コードの myResolution = 300; と var myColor = OpenDocumentMode.CMYK; で決まります。

この2行を変えた版は、今回は試していません。

ページの大きさが違うPDFの場合

1ページ目を横長(4×3インチ)、2ページ目を縦長(3×4インチ)にした、2ページのPDFでも試しました。

ドキュメントの大きさは1ページ目と同じ1200×900 pxになり、2ページ目のレイヤーは900×1200 pxのまま、左から150 px、上端0の位置に入りました。

2ページ目の下の300 pxはカンバスの外にはみ出して、画面には見えません。

はみ出した部分はレイヤーに残っていて、PSDに保存して読み取っても900×1200 pxのままでした。

横長と縦長のページを持つPDFを読み込み、縦長の2ページ目が横長のカンバスからはみ出したPhotoshopの画面
2026-10-16撮影。Adobe Photoshop 2026 (27.11.0)、Windows 11 Pro (10.0.26200)。1ページ目が横長、2ページ目が縦長のPDFを読み込んだ実機画面。カンバスは1ページ目と同じ1200×900 pxで、2ページ目のレイヤー(属性パネルでW 900 px・H 1200 px・X 150 px・Y 0 px)の下側がカンバスの外にはみ出している。

アートボードの大きさが違うPDFを読み込んだときは、読み込んだ後にカンバスを広げるか、レイヤーの位置を合わせ直します。

位置は今回の結果で、ほかの大きさの組み合わせは試していません。

実行後に残る設定と、コードの注意点

コードの3行目 displayDialogs = DialogModes.NO; の設定は、実行後もPhotoshopに残っていました。

実行前に読み取ると DialogModes.ERROR、実行後は DialogModes.NO でした。

DialogModes.NO は、スクリプトの実行中に確認の画面を出さない設定です。

この検証と同じく実行前がDialogModes.ERRORだった場合に戻すには、app.displayDialogs = DialogModes.ERROR; を実行します。

今回は、これで DialogModes.ERROR に戻ったことを読み取りで確かめました。

2ページ目以降のループでは、読み込み・コピー・貼り付けなどで例外が出ると「Done」を表示して終了します。

1ページ目の読み込みはこの例外処理の外です。

背景色も白に変更したままなので、必要なら実行前の色に戻してください。

最後のページの次で止まるときも、途中の失敗も同じ「Done」です。

全ページ成功の証明にはならないので、レイヤー数と各ページの内容をPDFと照合してください。

上限まで例外なく進んだ場合は「Done」を出さずに終了する構造です。

また、myMaxPages が100で、ループの条件が myCounter < myMaxPages なので、読み込むのは最大99ページまでです。

拡張子が小文字の .pdf でないと「選択されたPDFがありません。

」と表示される判定になっています。

99ページの上限と拡張子の判定はコードを読んだ内容で、実機では試していません。

途中で失敗した場合は、取り込めた最後のページとレイヤー数を控えます。

同じPDFを通常の読み込み操作でも開き、特定のページで止まるかを切り分けてください。

設定を戻す際は記事の検証値を一律に使わず、自分が実行前に控えた値へ戻します。

この記事で紹介しているコードは、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。

読み込みと書き出しの記事は、ほかにもあります。

スポンサーリンク

まとめ

  • Adobe XDなどで書き出した複数ページPDFをレイヤーごとに読み込める
  • 読み込み後はレイヤー数・順番・端の欠けを元のPDFと照合する
  • 複数ページのPDFを一括で処理できる(コードの上限は99ページ)

まず少数ページの複製で試し、保存後にレイヤーと設定を確認してください。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

Photoshopのおすすめ書籍

動作要件とPCの確認項目

周辺機器の優先度

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次