BridgeCCでIllustratorファイルの配置情報を参照する

先日BridgeCC上でファイル名のカタカナを変換可能なスクリプトの記事を投げ込んだのは見ていただきましたでしょうか?
まだ見ていない人は遡ってご確認いただければと思いますです。
で、ですね…今回はIllustratorファイルに含まれるリンク情報を開かずに取り出せるものをお届けしようと思った次第です。まあ、開いてパッケージしちゃえばええやん???って思った人、正解です。

でもね、開かずにリンク情報だけ確認できると手っ取り早い事も多々あるわけです。
そんな時、このスクリプトが役に立つのです。


さて、どうやって使うかと言うと…

まずターゲットのファイルを選択して下さい。そしてその上までマウスポインタを移動して右クリックするとコンテキストメニューってやつが開きます。

こんな感じですね。
ここにスクリプトが登録されていて、このスクリプトの場合「Link」ってのがそれなのです。

メニューを選んで実行するとダイアログが開き、そこにリンク情報がリストアップされます。

バージョンによっては全選択とかコピーといったショートカットが機能しませんので、その場合はドラッグで選択して右クリックメニューからコピーなどを選択するとOKです。

 

addMenu = 
{
   menuCommandID : "linkList",
   run : function() 
   {
      if ($._metaLink==undefined) defineMetaLink();
      var menuItem = new MenuElement("command", "Links",
         "before Thumbnail/Open", this.menuCommandID);
      menuItem.onSelect = function () 
      {
          if(app.documents.length>0) $._metaLink.read();
      }
   }
}

function defineMetaLink() 
{
    $._metaLink =
    {
      ns : "http://ns.adobe.com/xap/1.0/mm/",
      read : function()
      {
        var prop = "Manifest";
        if(xmpLib==undefined) 
        {
           if(Folder.fs=="Windows")
           {
              var libPath = Folder.startup.fsName + "/AdobeXMPScript.dll";
           } 
           else 
           {
              var libPath = Folder.startup.fsName + "/AdobeXMPScript.framework";
           }
           var libfile = new File(libPath);
           var xmpLib = new ExternalObject("lib:" + libPath );
        }
        var xmpFile = new XMPFile(app.document.selections[0].path, 
        XMPConst.UNKNOWN, XMPConst.OPEN_FOR_READ);
        var xmpPackets = xmpFile.getXMP();
        var xmp = new XMPMeta(xmpPackets.serialize());
        var str = "";
        for (var i=1; i<=xmp.countArrayItems(this.ns, prop); i++)
        {
           str += xmp.getProperty(this.ns, prop + "[" + i + "]" 
              + "stMfs:reference/stRef:filePath").toString() + "\r";
        }
        xmpLib.unload();
        var w = new Window("dialog","Links",undefined);
        var tb = w.add("edittext", [0,0,350,400], str, {multiline:true});
        var bt = w.add('button', undefined, 'close', {name:'cancel'});
        bt.onClick = function (){w.close()};
        w.show();
        }
    }
}

addMenu.run();


仕組み的にはメニューへの登録と実際に稼働するコードの2パート構成となります。XMPメタデータから情報を取得していますので、そういった情報の操作方法としても参考になるかと思います。

で、スクリプトなんか書かないからよくわからないという方々は、わたしのクラウドからダウンロードして下さい。

https://shared-assets.adobe.com/link/558792f8-39e9-47aa-6c97-ec28f31b7724

ダウンロードするとLinkViewer_2.jsxってファイルが得られます。

Bridgeを立ち上げて環境設定を開き「スタートアップスクリプト」タブを選択します。

マイスタートアップスクリプトを表示をクリックしスタートアップスクリプトフォルダを開きます。ここに先ほどのスクリプトを投入しBridgeを再起動してください。

コメントを残す

メールアドレスが公開されることはありません。