主にInDesignによる新聞組版Tips中心です。Mac使いですが業務はWin多め。Win DTP Tipsを増やしたい

【InDesign】右クリック→(リンク)編集ツール のカスタマイズ

Windows DTP屋の皆様、お元気ですか。

Adobeアプリには、右クリック→(元データを編集)編集ツール→ からアプリを指定し直接開ける機能があります。

Mac版は、システムで見つかる関連アプリをメーカーに依らず全Version表示しますが(これはこれで鬱陶しい)、Win版はOS側の関連付けの性質が悪く、直近のAdobeインストールVersionを1~2しか表示しません。

(cc2019~cc2021までインストール済み・cc2020で作業中)

毎回「その他...」からドライブ(C:)を一から掘り起こさねばならない。 近いディレクトリをDirect Foldersに登録して使っていましたが、それでも2 touchくらいロスが出る。*.exeそのものの登録実行はできなかった

しかし、ボヤいたら神が降臨して下さいました。あるふぁ(仮)さん。本当に神です、いつも本当にありがとうございますーー!


用意するもの

検証環境:Windows 10(2004、20H2)InDesign CC2020(15.0~15.1.2辺り)Illustrator CC2020(24.2.3)

追記:20H2?のアップデート以降、既に起動中の関連アプリがアクティブウィンドウになりません。(2021.3.10)

記述
  1. ExtendScript Toolkit CCをインストール後、起動。新規ドキュメント(ソース)に以下をコピペ

    ※下記セッション名(targetengine)は、他と被らない名で任意
    ※異versionを同時に立ち上げた時も重複してしまうので注意

      //DESCRIPTION:オブジェクトを右クリック「編集ツール」にadobeアプリを追加する(Startup Scripts)
      /*
          最初のとこのアプリ名のリストは、左側がメニュー名(なんでもいい)、右側がBridgeTalkでアプリを特定する文字列。
          調べるには対象にしたいアプリでalert(BridgeTalk.appSpecifier)というスクリプトを実行する
          */
    
      #targetengine "sessionAppMenu"
      apuriNames=[
      ["Illustrator CC 2019","〓"],
      ["InDesign CC 2019","〓"],
      ];
    
      for(var i=0;i<apuriNames.length;i++)
      {
          var m = app.scriptMenuActions.add (apuriNames[i][00]);
          m.addEventListener("onInvoke", (function (t)
          {
              return function()
              {
                  var gs = [], ls = [], s = app.selection;
                  for(var i=0; i<s.length; i++)
                  {
                      if (s[i].hasOwnProperty("itemLink")) gs.push(s[i]);
                      else gs.push.apply(gs,s[i].allGraphics);
                      }
                  for(var i=0; i<gs.length; i++)
                  {
                      if(gs[i].itemLink.status == LinkStatus.NORMAL) ls.push(File(gs[i].itemLink.filePath) + "");
                      }
                  var bt = new BridgeTalk;
                  bt.target = t;
                  bt.body = "var p='"+ls.join(",")+"'.split(',');for(var i=0;i<p.length;i++)app.open(File(p[i]))";
                  bt.send();
                  }
              })
          (apuriNames[i][1]) );
    
          app.menus.item("レイアウトのコンテキストメニュー").submenus.item("編集ツール").menuItems.add(m);
          }
    

  2. Windowsの隠しファイルを表示=ON

    タスクバー「ここに入力して検索」→ 隠しファイル(入力)→隠しファイルを表示する
  3. PC→ Windows(C:)→ ユーザー→ (ユーザー名)→ AppData→ Roaming→ Adobe→ InDesign→ Version xxxx-J→ ja_JP→ Scripts→

    Startup Scripts 名のフォルダを作り、ここへ保存


対象アプリの文字列を調べる
  1. 対象アプリケーションとAdobe ExtendScript Toolkit CC(以下ESTK)を起動
  2. ESTKで対象アプリケーションを指定
    (ドキュメントの左上→ プルダウンリスト)
  3. 新規ドキュメント(ソース)に下記をコピペ、(メニュー)デバッグ→実行

     $.writeln(BridgeTalk.appSpecifier)
    

    デバッグ→ 実行)

  4. (メニュー)ウインドウ→ JavaScriptコンソール展開

  5. アプリバージョン箇所をコピー、最初の記述内 〓 に差し替え、上書き保存
    例:["InDesign CC 2020","indesign-15.064"],

    文字列が分かれば、もうこのソース.jsxは不要です。


ESTKを入れられなかった人は、メモ帳などで
$.writeln を
alert に差し替えてScript Panelフォルダへ保存。拡張子を(.jsx)にリネームしInDesignスクリプトパネルから実行、アラートで出た名称を記述内に記入して下さい。雑説明


InDesignを再起動して、運用してみましょう

(いぇあー)

編集ツール→ その他メニューに、任意のAdobeアプリケーションが追加されましたー

※リンクパネルの同機能に反映・応用はできません


基本機能と違い、編集後リンクバッジのクリックが必要になりますが、なに、そのくらいの手間は甘んじましょう。

これでまたひとつ、InDesignをアナタ色に染める事ができました!

※そう、このコメントを送ったのは私でした