Skip to main content
Participating Frequently
February 2, 2021
Answered

イラストレータの「リンクされたファイル」を表示したい

  • February 2, 2021
  • 4 replies
  • 1130 views

配置画像の場所を確認したいのですが、

インデザインファイルを指定した場合はメタデータの欄に「リンクされたファイル」覧が表示されます、

しかし、イラストレーターファイルを指定した場合は「リンクされたファイル」の欄がでてきません。

イラストレーターのリンクパス名の一覧を表示する方法はないでしょうか?

macOS Catalina 10.15.7

Adobe Bridge 2021

    This topic has been closed for replies.
    Correct answer Ten A
    これ、AiとIdのメタデータ構造って一緒なんですけど、何故かIllustratorのメタデータからリンク情報が取れないんですよね。ほんと、訳がわかんないんですけど、泣き言を並べても前に進みませんのでスクリプトを用意してあります。
     
    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();
    alert(str);
    }
    }
    }
    
    addMenu.run();
     
    このコードをテキストエディタにコピペして「適当なファイル名+.jsx」という名前で保存します。
    これをBridgeの環境設定のスタートアップスクリプトのマイスタートアップスクリプトを表示をクリックして表示されるフォルダに投入します。
    Bridgeをリスタートしてからファイルを選んでマウスの右ボタンプレスでメニューを開くとLinksっていうのが追加されていますので試してみてください。

    4 replies

    b-4Author
    Participating Frequently
    February 3, 2021

    スクリプトの改造ありがとうございます。

    スクロールも出来てとても使いやすくなっていました、これからも活用していきたいと思います。

    Ten A
    Community Expert
    Community Expert
    February 2, 2021

    少し使いやすくしておきました。スクロール可能でテキストもコピーできます。

     

    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();

     

    b-4Author
    Participating Frequently
    February 2, 2021

    ありがとうございます。

    別ウィンドウが開いてリンク一覧が見られました。

    ただ大量にリンクがあるものはスクロールが出来ず右下のOKボタンが隠れちゃいました。

    でも、リンク間違いがないか大体確認できましたのでほんと助かりました。感謝です。

    Ten A
    Community Expert
    Ten ACommunity ExpertCorrect answer
    Community Expert
    February 2, 2021
    これ、AiとIdのメタデータ構造って一緒なんですけど、何故かIllustratorのメタデータからリンク情報が取れないんですよね。ほんと、訳がわかんないんですけど、泣き言を並べても前に進みませんのでスクリプトを用意してあります。
     
    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();
    alert(str);
    }
    }
    }
    
    addMenu.run();
     
    このコードをテキストエディタにコピペして「適当なファイル名+.jsx」という名前で保存します。
    これをBridgeの環境設定のスタートアップスクリプトのマイスタートアップスクリプトを表示をクリックして表示されるフォルダに投入します。
    Bridgeをリスタートしてからファイルを選んでマウスの右ボタンプレスでメニューを開くとLinksっていうのが追加されていますので試してみてください。