Bridgeでファイルを見ると、「キーワード」というものがあります。
ここにキーワードを入れることで、ファイルを探しやすくしたり、類似のファイルのタグ付けのようなものができます。
ファイルを選択した状態で右クリック>ファイル情報でもキーワードを確認できます。
仕事で「キーワードに情報を自動で入れたい」という案件が発生したため、メモしておきます。
XMP
Bridgeでは、「XMP」というメタデータを管理するための規格のようなものがあります。
JavaScirptでXMPにアクセスし、書き換えを行います。
ExtendScriptToolkitを起動する
ExtendScriptToolkitを起動します。
インストールしていない方はCreative Cloudからインストールしましょう。
JavaScriptと実行結果
JavaScriptは以下のとおりです。
var doc = app.document;
var fileList = doc.selections;
for(var i=0; i<fileList.length; i++){
var filePath = fileList[i].path;
var fileName = fileList[i].name;
setKeyword(filePath,fileName);
}
function setKeyword(filePath,fileName){
if(!ExternalObject.AdobeXMPScript){
ExternalObject.AdobeXMPScript = new ExternalObject('lib:AdobeXMPScript');
}
var xmpFile = new XMPFile(filePath,XMPConst.FILE_ILLUSTRATOR, XMPConst.OPEN_FOR_UPDATE);
var xmpPackets = xmpFile.getXMP();
var xmp = new XMPMeta(xmpPackets.serialize());
var ns = XMPConst.NS_DC;
var mt = new XMPMeta(xmp.serialize());
mt.deleteProperty(ns, "subject");
mt.setProperty(ns, "subject", fileName);
if(xmpFile.canPutXMP(xmp)) xmpFile.putXMP(mt);
xmpFile.closeFile(XMPConst.CLOSE_UPDATE_SAFELY);
}
実行すると、Bridge上で選択されたファイルのキーワードが、ファイル名になります。
ざっくり解説
XMPはXMLのように階層になっていて、
書き換えたい場所がどのような構造になっているかを調べる必要があります。
構造は、「ファイル情報」>「Rawデータ」から確認できます。
ここで「キーワード」の部分がどこにあるのかを調べると、<dc:subject> の中にあることがわかります。
JavaScriptの var ns = XMPConst.NS_DC はdcにアクセスするということになります。
ここをネームスペースというらしいです。
mt.deleteProperty(ns, "subject");
mt.setProperty(ns, "subject", fileName);
上記部分が「キーワード」へのアクセス部分です。
最初にdeletePropertyで「キーワード」を初期化します。
これをやらないと、すでに要らないキーワードが入っている場合にエラーになってしまいます。
初期化した後に、あらかじめ取得しておいたファイル名を setProperty で書き込みます。
たったこれだけ。
このJavaScriptを考えるにあたり、以下のサイトを参考にしました。
詳しい解説が知りたい方はぜひ参考にしてください。