概要
InDesign に配置されたPDF形式ファイルの配置オプション「背景を透明に」のチェックの有無を確認するスクリプトを書いた。
www.macneko.com 上記の CEP Extensions は InDesign CC 2015 以降対応だったので、スクリプトにすることで InDesign CS6 以降のバージョンで使用できる。
使い方
CEP Extensions の記事とほぼ同じだが、異なる点はスクリプトなので、スクリプトパネルから起動する必要がある。
仕様的なもの
CEP Extensions の記事とほぼ同じ。
対応バージョン
InDesign CS6以降。
ソースコード
#targetengine 'session' (function () { var palette = new Window('palette', '背景を透明にチェック', undefined); var titleArea = palette.add('statictext', undefined, '配置オプションの「背景を透明に」:'); var messageArea = palette.add('statictext', undefined, 'グラフィックフレーム、または画像を1つだけ選択してください'); var eventListener = app.addEventListener('afterSelectionChanged', function (event) { // try 〜 catch しないとドキュメントを閉じたときにエラーになる try { messageArea.text = checkTransparentBackground(); } catch (e) { } }); palette.onClose = function () { eventListener.remove(); }; palette.show(); // 配置オプションの「背景を透明に」の状態を返す var checkTransparentBackground = function () { if (app.documents.length === 0) return 'グラフィックフレーム、または画像を1つだけ選択してください'; if (app.selection.length !== 1) return 'グラフィックフレーム、または画像を1つだけ選択してください'; var selObj = app.selection[0]; if (selObj.constructor.name === 'Rectangle' && selObj.graphics.length === 1 && selObj.graphics[0].imageTypeName.indexOf("PDF") > -1) { // pdfAttributesはisValidが動作しない... try { if (selObj.graphics[0].pdfAttributes.transparentBackground) { return 'ON'; } else { return 'OFF'; } } catch (e) { return '背景を透明にオプションがない形式の配置画像です'; } } if (selObj.constructor.name === 'TextFrame') { return '配置画像ではありません'; } try { if (selObj.pdfAttributes.transparentBackground) { return 'ON'; } else { return 'OFF'; } } catch (e) { return '背景を透明にオプションがない形式の配置画像です'; } return 'OFF'; }; }());