Skip to content

Get named pageItems

fabiantheblind edited this page Nov 19, 2015 · 3 revisions

You can give pageItem a name by running this on a selected text frame:

    app.selection[0].name = "bob";

to retrieve the text frame with the name "bob" you should do something like this:

    function get_named_item(page) {
      var named_item = null;
      for (var i = 0; i < page.allPageItems.length; i++) {
        var item = page.allPageItems[i];
        if (item.name == "bob") {
          named_item = item;
          break;
        }
      }
      return named_item;
    }

    var doc = app.activeDocument;
    var p = doc.pages[0];

    var res = get_named_item(p);
    if (res === null) {
      $.writeln(" :(");
    } else {
      $.writeln(" :)");
    }

These names seem to be persistent. You can get it when you copy paste the item into a new doc and also when you restart InDesign.
Written for this stackexchange.com question.

Clone this wiki locally