SnpInspectMetadata.jsx
Summary
Shows how to acquire metadata for a selected thumbnail using XMP external object.
See:
Class Summary
|
SnpInspectMetadata |
Shows how to acquire metadata for a selected thumbnail using XMP external object. |
function SnpInspectMetadata()
{
this.requiredContext = "Needs to run in Bridge, \nwith a selection of a file, \nideally with some metadata";
}
SnpInspectMetadata.prototype.run = function()
{
if(!this.canRun())
{
return false;
}
if( xmpLib == undefined )
{
if( Folder.fs == "Windows" )
{
var pathToLib = Folder.startup.fsName + "/AdobeXMPScript.dll";
}
else
{
var pathToLib = Folder.startup.fsName + "/AdobeXMPScript.framework";
}
var libfile = new File( pathToLib );
var xmpLib = new ExternalObject("lib:" + pathToLib );
}
$.writeln("About to run SnpInspectMetadata");
var thumb = app.document.selections[0];
if(thumb.hasMetadata)
{
var selectedFile = thumb.spec;
var myXmpFile = new XMPFile( selectedFile.fsName, XMPConst.UNKNOWN, XMPConst.OPEN_FOR_READ);
var myXmp = myXmpFile.getXMP();
var fileInfo = myXmpFile.getFileInfo();
$.writeln("XMP contents for " + fileInfo.filePath);
$.writeln("\n---------------------");
$.writeln("PDF Schema - " + XMPConst.NS_PDF);
var prop = myXmp.getProperty(XMPConst.NS_PDF, "Keywords", XMPConst.STRING);
$.writeln("\tKeywords: " + prop);
prop = myXmp.getProperty(XMPConst.NS_PDF, "Copyright", XMPConst.STRING);
$.writeln("\tCopyright: " + prop);
prop = myXmp.getProperty(XMPConst.NS_PDF, "Producer", XMPConst.STRING);
$.writeln("\tProducer: " + prop);
$.writeln("\n---------------------");
$.writeln("XMP Basic - " + XMPConst.NS_XMP);
prop = myXmp.getProperty(XMPConst.NS_XMP, "MetadataDate", XMPConst.XMPDATE);
$.writeln("\tMetadataDate: " + prop);
prop = myXmp.getProperty(XMPConst.NS_XMP, "CreatorTool", XMPConst.STRING);
$.writeln("\tCreatorTool: " + prop);
prop = myXmp.getProperty(XMPConst.NS_XMP, "CreateDate");
$.writeln("\tCreateDate: " + prop);
$.writeln("\n---------------------");
$.writeln("Dublin Core - " + XMPConst.NS_DC);
dumpArrayItems(XMPConst.NS_DC, "description");
dumpArrayItems(XMPConst.NS_DC, "title");
dumpArrayItems(XMPConst.NS_DC, "creator");
$.writeln("\n---------------------");
$.writeln("XMP Asset Management - " + XMPConst.NS_XMP_MM);
prop = myXmp.getProperty(XMPConst.NS_XMP_MM, "InstanceID", XMPConst.STRING);
$.writeln("\tInstanceID: \n\t " + prop);
prop = myXmp.getProperty(XMPConst.NS_XMP_MM, "DocumentID", XMPConst.STRING);
$.writeln("\tDocumentID: \n\t " + prop);
$.writeln("\n---------------------");
$.writeln("Getting some localized text:");
var localizedText = myXmp.getLocalizedText(XMPConst.NS_DC,"title", null, "it-IT");
$.writeln("\tItalian: " + localizedText);
var localizedText = myXmp.getLocalizedText(XMPConst.NS_DC,"title", null, "fr-FR");
$.writeln("\tFrench: " + localizedText);
var localizedText = myXmp.getLocalizedText(XMPConst.NS_DC,"title", null, "en-US");
$.writeln("\tEnglish: " + localizedText);
}
else
{
$.writeln("The selected thumbnail has no metadata.");
}
function dumpArrayItems(ns, prop)
{
var items = myXmp.countArrayItems(ns, prop);
if(items > 0)
{
$.writeln("\t" + prop + ": ");
for(var i = 1;i <= items;i++)
{
arrItem = myXmp.getArrayItem(XMPConst.NS_DC, prop, i);
$.writeln("\t [" + i + "] = " + arrItem);
if((arrItem.options & XMPConst.PROP_HAS_QUALIFIERS) > 0)
{
var propName = prop + "[" + i + "]";
var val = myXmp.getQualifier(XMPConst.NS_DC, propName, "http://www.w3.org/XML/1998/namespace", "lang");
$.writeln("\t xml:lang = '" + val + "'");
}
}
}
else
{
$.writeln("\t" + prop + "\n\t No data");
}
$.writeln();
}
$.writeln("Ran SnpInspectMetadata");
return true;
}
SnpInspectMetadata.prototype.canRun = function()
{
if( (BridgeTalk.appName == "bridge") && (app.document.selectionsLength == 1)) {
return true;
}
$.writeln("ERROR:: Cannot run SnpInspectMetadata");
$.writeln(this.requiredContext);
return false;
}
if(typeof(SnpInspectMetadata_unitTest ) == "undefined") {
new SnpInspectMetadata().run();
}
http://www.adobe.com/devnet/bridge
Documentation generated by
JSDoc on Tue Apr 27 10:21:34 2010