It got rid of my formatting, so it's a little harder to read, but fairly straightforward. Basically the parent for loop finds layers within the layerSet 'quoteLayer'. This is successfully grabbing contents for each text item, and pushing them to an array. Where I'm looking for more info, is how to tell the actionReference to get quoteLayer[n] as it's target, instead of the active Layer. Is it as simple as changing one of the values within ref.putEnumerated to charIDToTypeID(quoteLayer[n])?
for(n=0; n<quoteLayer.length; n++){ | ||
if(quoteLayer[n].kind == LayerKind.TEXT) { | ||
quoteLineContents = quoteLayer[n].textItem.contents; | ||
arrayPush('quoteUsed',quoteLineContents) | ||
var ref = new ActionReference(); | ||
ref.putEnumerated( charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") ); | ||
var layerDesc = executeActionGet(ref); | ||
var textDesc = layerDesc.getObjectValue((stringIDToTypeID('textKey')); | ||
var paragraphStyle = textDesc.getList(stringIDToTypeID('paragraphStyleRange')); | ||
var kernRange = textDesc.getList(stringIDToTypeID('kerningRange')); | ||
var rangeList = textDesc.getList(stringIDToTypeID('textStyleRange')); | ||
for (var m = 0; m < rangeList.count; m++) { | ||
var styleDesc = rangeList.getObjectValue(m).getObjectValue(stringIDToTypeID('textStyle')); | ||
try {fontName = styleDesc.getString(stringIDToTypeID('fontPostScriptName'))} | ||
catch (e) {fontName = "Error: Reformat text objects and try again"} | ||
arrayPush ('fontsUsed',fontName); | ||
} | ||
} |