忍者ブログ

ぼんぷろぐ

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

[InDesign]
リンク画像をファイル名で検索するスクリプト

あの画像置いたページどこだっけーってときのための。

ダイアログに入力したキーワードを、リンク画像のファイル名(フルパスでなく)から部分一致検索します。
ヒットしたらその画像が選択状態になります。
2回目以降はダイアログに前回のキーワードが残ります。キーワードを変えずにOKを押すと「次を検索」になります。(別にページ順にはならない模様)

isValidプロパティを使ってるのでCS3以前では動きませんが
3行目「if (myDialog.isValid) {」を「try{」に
26行目「} else {」を「}catch(e){」にすれば動くかも。

以下ソース

var myDocu=app.activeDocument;
var myDialog=app.dialogs.item("リンク画像の検索");
if (myDialog.isValid) {
    var myTextEditbox=myDialog.dialogColumns[0].textEditboxes[0];
    var key0=myTextEditbox.editContents;
    if (!myDialog.show()) exit();
    var Hits=LinkSearch(myTextEditbox.editContents);
    if (Hits.length==0) err("見つかりません");
    if (myTextEditbox.editContents==key0){
        for (var i=0;i<Hits.length;i++){
            if (Hits[i]==myDialog.label) {
                var j=(i+1)<Hits.length?(i+1):0;
                myDocu.links.itemByID(Hits[j]).parent.parent.select();
                myDialog.label=""+Hits[j];
                break;
            }
            if (i==Hits.length-1) {
                myDocu.links.itemByID(Hits[0]).parent.parent.select();
                myDialog.label=""+Hits[0];
            }
        }
    } else {
        myDocu.links.itemByID(Hits[0]).parent.parent.select();
        myDialog.label=""+Hits[0];
    }
} else {
    myDialog=app.dialogs.add({name:"リンク画像の検索"});
    with(myDialog){
        with(dialogColumns.add()){
            var myTextEditbox=textEditboxes.add({minWidth:200});
        }
    }
    if (!myDialog.show()) exit();
    var Hits=LinkSearch(myTextEditbox.editContents);
    if (Hits.length==0) err("見つかりません");
    myDocu.links.itemByID(Hits[0]).parent.parent.select();
    myDialog.label=""+Hits[0];
}
function LinkSearch(key){
    var myLinks=myDocu.links
    var arr=[];
    for (var i=0;i<myLinks.length;i++){
        if (myLinks[i].name.indexOf(key)>=0){
            arr.push(myLinks[i].id);
        }
    }
    return arr;
}
function err(s){
    alert(s);
    exit();
}
PR

コメント

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

プロフィール

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

InDesignスクリプトについて

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

twitter

5つの「く」

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