Copy link to clipboard
Copied
Hi everyone,
Is it possible to have the list of all labels associated to a textframe ?
Example :
txtfrm.insertLabel "key1", "value1"
txtfrm.insertLabel "key2", "value2"
txtfrm.insertLabel "key3", "value3"
txtfrm.getAllLabels --> "key1, key2, key3"
Thanks.
Cyril
...var txtfrm = app.selection[0];
txtfrm.insertLabel ("key1", "value1")
txtfrm.insertLabel ("key2", "value2")
txtfrm.insertLabel ("key3", "value3")
var getLabels = function(item) {
var f = File(Folder.desktop+"/"+item.id+".idms" ),
x, a, o = {}, keys, n;
if ( !(item.exportFile instanceof Function) ) return;
item.exportFile ( ExportFormat.INDESIGN_SNIPPET, f );
if ( !f.exists ) return;
f.open("r");
x = XML ( f.read() );
f.close();
f.remove();
keys = x..KeyValuePair;
n = keys.len
Copy link to clipboard
Copied
var txtfrm = app.selection[0];
txtfrm.insertLabel ("key1", "value1")
txtfrm.insertLabel ("key2", "value2")
txtfrm.insertLabel ("key3", "value3")
var getLabels = function(item) {
var f = File(Folder.desktop+"/"+item.id+".idms" ),
x, a, o = {}, keys, n;
if ( !(item.exportFile instanceof Function) ) return;
item.exportFile ( ExportFormat.INDESIGN_SNIPPET, f );
if ( !f.exists ) return;
f.open("r");
x = XML ( f.read() );
f.close();
f.remove();
keys = x..KeyValuePair;
n = keys.length();
if ( !n ) return;
while ( n-- ) {
o[String(keys
.@Key)] = String(keys .@Value); }
x = null;
return o;
}
var labels = getLabels ( txtfrm );
alert ( labels? labels.toSource() : "None" );
Copy link to clipboard
Copied
Ingenious! Very clever Loic.
P.
Edited to say.
Expensive in time. but still very clever.
Copy link to clipboard
Copied
Okay. Thank you.
I wil test it this afternoon.
Copy link to clipboard
Copied
Perfect !
It works !
Thank you.