Adobe XDや他のデザインツールで作成したPDFをPhotoshopに取り込む際、各ページをレイヤーとして読み込みたい場面があります。
この記事では、スクリプトを使って複数ページのPDFを1ページずつレイヤーとして読み込む手順を解説します。

目次
Adobe XDからのPDF出力手順
- Adobe XDでデザインを作成します。

- [書き出し] > [すべてのアートボード] > [単一のPDFファイル] を選択してPDFを出力します。

PDFをレイヤーとしてPhotoshopに読み込む手順
1. スクリプトの準備
下記のコードをテキストエディタに貼り付け、ファイル名を「PDF_Pages_to_Layers.jsx」として保存します。
Photoshopの他の操作については、関連記事のまとめも参照してください。
あわせて読みたい


Photoshopの使い方|保存・レイヤー・一括処理から探す
Photoshopでやりたい作業から記事を選べます。複数の画像に同じ編集を繰り返す場合は「アクション・一括処理」、JSXファイルを初めて使う場合は「スクリプトの導入・実…
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.supressWarnings = 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;
}
}
}- スクリプトファイルを保存し、PhotoshopのPresets内にあるScriptsフォルダに配置します。
C:\Program Files\Adobe\Adobe Photoshop CC\Presets\Scripts - 配置後、Photoshopを再起動します。
2. スクリプトの実行
- Photoshopを起動します。
- [ファイル] > [スクリプト] > [参照]から
PDF_Pages_to_Layers.jsxを選択して実行します。 - 読み込みたいPDFファイルを選択すると、各ページが個別のレイヤーとして自動で読み込まれます。

この記事で紹介しているコードは、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。
読み込みと書き出しの記事は、ほかにもあります。
あわせて読みたい


Photoshop│PSDをImageMagickで出力するまとめ
ImageMagickを使ってPSDから画像やメタデータを抽出・変換する方法をまとめました。 1. PSDとは 拡張子: .psd(標準) / .psb(大型ドキュメント) 特徴 画像、レイヤー…
あわせて読みたい


PythonでPSDをPNGに変換する方法|psd-toolsの使い方と合成の限界
psd-tools は、PythonでPSDのレイヤー情報を読み取り、画像を出力するためのライブラリです。Photoshopを起動せずに処理できますが、Photoshopの描画結果をすべて再現す…
あわせて読みたい


Photoshop│「ファイルをレイヤーとして読み込み」の使い方
Photoshopには、標準で利用できるスクリプトが用意されています。 ここでは、複数の画像ファイルを1つのドキュメントに個別レイヤーとして読み込める 「ファイルをレイ…
あわせて読みたい


Photoshopのレイヤーを個別ファイルに書き出す方法|PNG・表示対象・保存名
PSDの各レイヤーを別々の画像として保存するには、[ファイル]→[書き出し]→[レイヤーからファイル]を使います。保存先、ファイル名の先頭文字列、形式、表示対象を…
まとめ
- Adobe XDなどで書き出した複数ページPDFをレイヤーごとに読み込める
- 手作業での配置作業を省き、作業を効率化できる
- ページ数が多いPDFでも一括で処理できる
複数ページのPDFをPhotoshopでレイヤー分けして作業したい場合は、このスクリプトをお試しください。
