忍者ブログ

ぼんぷろぐ

InDesign、イラレ、フォトショ(CS6 Win)の勉強中。。。(旧まとめいみブログ)

[InDesign]
リンク画像を勝手に更新スクリプト

InDesignでリンクが更新されたら!マーク出さずに自動的に同期させる…って環境設定にないよね?たぶんないハズ…
「元データを編集」を使うと1回は自動更新してくれるみたいだけどね
なんで1回だけなんだろね
てことでそれをやるスクリプト。

以下ソース


#targetengine "session"
app.addEventListener('afterLinksChanged',function(ev){
    var myLinks=ev.target.links;//targetはDocumentのハズ
    for(var i=myLinks.length-1;i>=0;i--){
        if (myLinks[i].status==LinkStatus.LINK_OUT_OF_DATE) myLinks[i].update();
    }
}).name="UpdateAfterLinksChanged";

つかいかた

実行したらすべてのドキュメントで自動更新が有効になります。

1回InDesignを終了させたら無効になります。

起動したまま無効にしたい場合は
app.eventListeners.item("UpdateAfterLinksChanged").remove();
を実行します。

常に有効にしたい場合は.jsxファイルをStartup Scriptsフォルダに放り込みます

どうでもいいこと

無効なリンクをupdate()しちゃうとエラーが出るみたいなので、evryItem使わずに丁寧にループ回してます。
最後の行が分かりにくいけど、addEventListener()の戻り値が今追加したEventListenerオブジェクトなのでそれに名前をつけとこうという意味です。
更新しちゃうけどいい?的なダイアログを1回だけ表示させるバージョンも作ろうとしたけど思いのほか難しくて断念。
1つのリンクを1回更新するだけでafterLinksChangeイベントが2,3回発生するみたいで、すごくしつこく聞いてくる人みたいになってしまう。
イベントリスナーのお勉強中だけど意外とできること少なそうでガッカリ中。
PR

コメント

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

プロフィール

あるふぁ(仮)
InDesignで新聞組版のようなことをしてる人です。

InDesignスクリプトについて

つくったInDesignスクリプトのまとめ

twitter

5つの「く」

ハタハタのすばらしさをまとめました。