ごんれのラボ

iOS、Android、Adobe系ソフトの自動化スクリプトのことを書き連ねています。

InDesign に配置されたPDF形式ファイルの配置オプション「背景を透明に」のチェックの状態を確認するスクリプトを書いた

概要

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';
    };
}());

ダウンロード

https://yahoo.jp/box/pXTJSk