忍者ブログ

ぼんぷろぐ

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

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

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

[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絵文字

プロフィール

kawamoto_α
(あるふぁ(仮))


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

ツイッタ

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



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



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



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