Site logo

Anchored objects

Release all anchored objects at once

var a = app.activeDocument.allPageItems, t;

while( t = a.pop() ) {
	t.isValid &&
	t.hasOwnProperty('anchoredObjectSettings') &&
	(t.parent instanceof Character) &&
	(t=t.anchoredObjectSettings).isValid &&
	t.releaseAnchoredObject();
}

The same code but more understandable

var a = app.activeDocument.allPageItems, t;

while( t = a.pop() ) {
	if (t.isValid) {
		if (t.hasOwnProperty('anchoredObjectSettings')) {	
			if (t.parent instanceof Character) {	
				if ((t=t.anchoredObjectSettings).isValid) {	
					t.releaseAnchoredObject();
				}
			}
		}
	}
}

Free anchored texts — Frees & styles all anchored texts in a document, replacing anchors with the contained text by Matthew Bartlett

Before

After

var items = app.activeDocument.allPageItems, count = 0

if(confirm("Okay to attempt to free the contents of ~roughly~ " + items.length + " anchored text boxes, styling them as 'Reference'?")) {

  while(item = items.pop()) {
    if(item.isValid &&
      item.hasOwnProperty('anchoredObjectSettings') &&
      item.parent instanceof Character &&
      item.hasOwnProperty('texts') &&
      (t=item.anchoredObjectSettings).isValid) {
      var contents = item.texts[0].contents + "\r"
      var parent = item.parent
      try {
        parent.contents = contents
        parent.appliedParagraphStyle = 'Reference'
        count = count + 1       
      } catch (error) {
        alert(error)
      }
    }
  }
  
  alert('Freed the contents of ' + count + ' anchored text boxes')
}