忍者ブログ

ぼんぷろぐ

InDesignとかイラレとかのスクリプトよもやま話

新しいブログに引っ越しました。

こちらのブログはもう更新しませんが、コメント欄は生きてますので疑問、ご指摘などありましたらどうぞ。

[InDesign]
「Bridgeで参照」を使い物にする InDesign編


InDesignが近々20周年を迎えるそうで、おめでとうございます。その記念イベントのアカウントから流れてきたツイートに「スクリプトで、いかようにも染められる」ってなことが書いてあったんですが、これは本当にそうで、InDesignは「ほんとにここまでできちゃっていいの?」って思うようなことまでスクリプトでできてしまいます。

たとえば、あるメニューコマンドが呼び出されたとき、その実行をキャンセルして別の処理をさせる、なんてこともできます。

ということで、ファイルメニューの良い位置を占めておきながらほとんど使い道のない『Bridgeで参照』を、現在開いているドキュメントをBridgeで参照する機能に変えるスクリプトです。

#targetengine session
app.menuActions.item("$ID/FileForBrowse").addEventListener("beforeInvoke", function(ev) {
    ev.preventDefault();
    var d = app.documents[0];
    with(new BridgeTalk) target = "bridge", body = "app.bringToFront();" + (d.isValid && d.saved > 0 ? "app.document.thumbnail=new Thumbnail(File('" + d.fullName + "'))" : ""), send();
});


これはスタートアップスクリプト用のスクリプトです。
所定のフォルダに置いといて起動時に自動実行されるようにするのですが、その所定のフォルダを開く手っ取り早い方法は、InDesignでスクリプトパネルを開いて「ユーザー」フォルダの上で右クリックし、エクスプローラーで開く(MacはFinderで開く?)を選びます。
そこに「Startup Scripts」があればその中、なければ「Scripts Panel」と同じ階層に「Startup Scripts」というフォルダを作成して、上記スクリプトを拡張子jsxで保存したものを入れます。

あとは普通にInDesignを起動すれば、「Bridgeで参照」が現在のドキュメントを参照するようになってるはずです。




コードの解説もちょっと

1行目 #targetengine session
イベントリスナー登録する系のスクリプトは関数が保持されないといけないのでターゲットエンジンの指定が必要です。エンジン名はなんでもいいです。

2行目 app.menuActions.item("$ID/FileForBrowse")...
"$ID/FileForBrowse"は"Bridgeで参照"のkey stringです。Bridgeって言葉が入ってないのが意外ですけど。

3行目 ev.preventDefault();
本来のコマンド実行をキャンセルするおまじないです。evはEventオブジェクトです。

5行目 with(new BridgeTalk)...
BridgeにBridgeTalkを送ってます。

オワリ
PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

プロフィール

kawamoto_α
(あるふぁ(仮))


InDesignで新聞組版のようなことをしています。

ツイッタ

※ブラウザによっては当ブログからDLしたzipファイルが拡張子なしになることがあるようですが、.zipを補って開いてください。



イラレ用トーンカーブスクリプト(¥1500)



クロソイド式角丸長方形スクリプト(¥500)
Illustrator用
InDesign用



イラレスクリプトをキーボードショートカットで実行するやつ(Win用)