Per the FAQ Scripts (JS & VBS) Snippet: Enumerating files and metadata tags it is possible to enumerate metadata.tags. Is there any way of doing the same thing with other metadata such as image, doc, audio, etc.? From my attempt to do the same (see below) with a sample image it would appear not. The only way I know is to interrogate all possible image properties as listed in Keywords for Columns (gpsoft.com.au) one by one. It would be handy to be able to home in on just the available properties.
Test Output:
f = C:\test\2019-09-15 18-10-20 (20190915_081020932_iOS).jpg
md = image, grps = Images
Sabi River
2019
Sep
f.metadata.image.datetaken = Sun Sep 15 10:10:21 UTC+1000 2019
f.metadata.doc.title = Sabi River
Test Code:
function OnClick(clickData)
{
if (clickData.func.sourcetab.selected_files.count==0) return;
DOpus.ClearOutput();
var f = clickData.func.sourcetab.selected_files(0);
DOpus.output("f = "+f);
var md = f.metadata;
if (String(md)=="none") {
DOpus.output("md = "+md);
return;
}
var grps;
for (var i = 0; i < f.groups.count; i++) grps = (i==0) ? f.groups(i) : grps+", "+f.groups(i);
DOpus.output("md = "+md+", grps = "+grps);
// Enumerate tags meta
for (var tagsEnum = new Enumerator(f.metadata.tags); !tagsEnum.atEnd(); tagsEnum.moveNext()) DOpus.output(tagsEnum.item());
// Demonstrate that there is at least one image property
DOpus.output("f.metadata.image.datetaken = "+f.metadata.image.datetaken);
// Enumerate image meta
for (var imageEnum = new Enumerator(f.metadata.image); !imageEnum.atEnd(); imageEnum.moveNext()) DOpus.output(imageEnum.item());
// Demonstrate that there is at least one doc property
DOpus.output("f.metadata.doc.title = "+f.metadata.doc.title);
// Enumerate doc meta
for (var docEnum = new Enumerator(f.metadata.doc); !docEnum.atEnd(); docEnum.moveNext()) DOpus.output(docEnum.item());
}