InDesignの画像書き出しは結構優秀。画像/スニペット書き出しエクステンション「assetterEX」
- 2018年12月13日 22:00
- tips
- CEP Extensions, InDesign, スニペット, 画像書き出し
これは、DTP Advent Calendar 2018の13日目の記事です。13日の木曜日(おしい)…
InDesignのjpgやpngへの画像書き出しは、「選択オブジェクトのみ書き出しができる」「解像度を指定できる」「カラーモードを指定できる※」など、結構優秀です。PhotoshopやIllustratorにも引けを取りません。
※jpgで書き出す場合はCMYK、RGB、グレースケール。pngで書き出す場合はRGB、グレースケールから選択可
とはいえ、いくつも(何度も)画像を書き出したい場合、その都度ファイル名や保存場所、解像度などを指定するのは面倒なもの。欲を言えばスキップしたいところです。
そこで、jpg、png、スニペットの3種類に絞り、ダイアログを表示しなくてもパネルから書き出せるエクステンションを作成しました。当記事の画像も、このエクステンションで書き出しています。
例えば、書籍→電子書籍、書籍→Webと展開する場合には、引き出し線付きの画像や、トリミング済みの画像を使う必要があることが多いので、このエクステンションが役に立つのではないでしょうか。
リリースノート
- 2018.12.13 | v1リリース ダウンロード(assetterEX.zxp)
動作確認バージョン
InDesign CC 2018、2019、2024
インストール方法
「.zxpファイルのインストール方法」に記載しています。
使い方
1.メニューバーの[ウィンドウ]→[エクステンション]から[assetterEX]を選択。[assetterEX]パネルを表示します。


2.オブジェクトを選択(複数選択可)し、[assetterEX]パネルの[書き出し形式]からいずれかを選択(作例ではpng)。

3.書き出すファイル名を[画像書き出しオプション]→[名前]に入力し、[解像度]から書き出す画像の解像度を入力。

いずれかの入力フィールドで[enter]キーを押すか、[上記設定で書き出す]ボタンをクリックすると、画像を書き出します。
4.書き出し後、操作しているInDesignファイルと同じ階層に「assetterEX」フォルダが作成されます。
その中に、「3.」で設定した名称-オブジェクトID※.pngという名称で画像が書き出されます。
※オブジェクトIDはInDesign内で個別に割り振られるものなので、こちらから入力する必要はありません

操作動画
TIPS
・[画像書き出しオプション]で、名前、解像度のラベルをクリックすると、入力フィールドにフォーカス

・グレースケール書き出し

選択したオブジェクトをスニペットで書き出すスクリプト「SOS」
SOSを出すほど切迫した作業でもないですが、スニペットに書き出すのは「[書き出し]メニューから書き出す」「選択したオブジェクトをドラッグ&ドロップでInDesignの欄外に出す」など、1つのオブジェクトを扱うにしては地味に面倒です。このめんどくささを少しでも解消することを意図に作成したスクリプトです。
ちなみに何が「SOS」なのかというと、このスクリプトを保存したときに付けた名前が「SelectObjectSnippet」だったからです。略して「SOS」。「ttt」でもいいかも。
CEPをインストールできない場合等にご利用ください。
//選択したオブジェクトをスニペットに
//スニペットは、開いているInDesignと同階層に保存されます。
//フォルダパス取得
var DocPath = app.activeDocument.filePath;
var count=app.activeDocument.selection.length;
for (var i=0; i < count; i++){
var selobj = app.activeDocument.selection[i];
//オブジェクトのidを取得
var ObjID=selobj.toSource();
var ObjIDrev = ObjID.split("@id=").reverse().join("")//オブジェクトのSourceを区切る
result = ObjIDrev.indexOf("]")//ID番号までの文字数を取得
var Objname=ObjIDrev.substr(0,result)//ID番号を取得
try{
// 書き出しパス
folderRef = new Folder (DocPath+"/"+"Snippet"+Objname+".idms");//保存するフォルダ(ファイルパスを指定)
selobj.exportFile(1936617588,folderRef);
}
catch(e){
alert("オブジェクトが選択されていません");
}
}
alert(count+"個のスニペットが書き出されました");
選択したオブジェクトをjpeg書き出しするスクリプト
//選択したオブジェクトをjpeg書き出し
//解像度350、AdobeRGBで書き出します。
//保存されるjpegファイルは、開いているInDesignと同階層に保存されます。
//用途:スクリーンショットに引き出し線をつけたものを画像にしたいとき、画像を含んだパーツを単独で書き出したいとき
//フォルダパス取得
var DocPath = app.activeDocument.filePath;
//jpg書き出しオプション
var jpgobj= app.jpegExportPreferences;
jpgobj.exportingSpread = false;
jpgobj.exportResolution = 350;
jpgobj.jpegColorSpace = JpegColorSpaceEnum.RGB;
jpgobj.jpegRenderingStyle = JPEGOptionsFormat.BASELINE_ENCODING
jpgobj.jpegQuality = JPEGOptionsQuality.HIGH;
//ファイル名取得~jpeg書き出し
var selobj = app.activeDocument.selection[0];
//画像を含まないオブジェクトを選択していた場合はエラーアラート
try{
var ObjName = selobj.allGraphics[0].itemLink.name;
result = ObjName.indexOf(".");
FileObj2 = ObjName .substr(0, result);
// 書き出しパス
folderRef = new Folder (DocPath+"/"+FileObj2+".jpg");//保存するフォルダ(ファイルパスを指定)
selobj.exportFile(1246775072,folderRef);
alert(FileObj2+".jpg"+"が書き出されました");
} catch(e){
alert("リンクされた画像はありません。画像か、画像が含まれたフレーム、オブジェクトを選択してください。");
}
派生スクリプト
- 選択したオブジェクトをpng書き出し(InDesign CS6から使用可能) スクリプトをダウンロード
- 現在選択しているページをjpeg書き出し スクリプトをダウンロード