Insert anchored frame below every "Figure" element
Good Morning,
I am trying to write a script that inserts an anchored frame in front of each element specified as "Caption". Below are my attempts. Could you help me? or advise something? Thank you in advance.
var doc = app.ActiveDoc;
var mainFlow = doc.MainFlowInDoc;
FindElements(mainFlow);
//~ function FindElements(flow) {
//~ var elements = flow.FirstTextFrameInFlow.everyItem().getElements();
//~ for (var i = 0; i < elements.length; i++) {
//~ var currentElement = elements[i];
function FindElements(flow) {
var currentElement = flow.HighestLevelElement;
var nextElement = currentElement.HighestLevelElement;
while (currentElement.ObjectValid()) {
FindFigures(currentElement);
currentElement = nextElement;
nextElement = currentElement.HighestLevelElement;
if (nextElement === currentElement) {
break;
}
}
}
function FindFigures(element){
var currentFigure = element.ElementDef;
var nextFigure = currentFigure.NextElementDefInDoc;
while (currentFigure.ObjectValid() && currentFigure.Name = "Figure");
NewAnchoredAFrame(currentFigure);
currentFigure = nextFigure;
nextFigure = currentFigure.NextElementDefInDoc;
if (nextFigure === currentFigure) {
//~ break;
}
}
function NewAnchoredAFrame(figure) {
var newFrame = figure.textContainers.add({
anchoredObjectSettings: {
anchoredPosition: AnchorPosition.ABOVE_LINE,
horizontalAlignment: HorizontalAlignment.CENTER_ALIGN,
anchoredPositionV: VerticalAlignment.TOP_ALIGN
}})
}
