Skip to main content
Inspiring
March 8, 2024
Answered

Override master page items on the 1st page only

  • March 8, 2024
  • 1 reply
  • 559 views

Hey guys,

I have found this script on the internet (link) and it's exacty what I need, however I'm getting this error when I try to run it "null is not an object". Can anyone take a look?

 

var myDoc = app.activeDocument;

var myPages = myDoc.pages;

var myMasterPage = myPages[0].appliedMaster.pages[0];

var myItems = myPages[0].allPageItems;
for (y=0; y<myItems.length; y++) {
    var myItem = myItems[y];

    if (myItem.constructor === TextFrame) {
        myItem.override(myMasterPage);
    }
}

 


Thanks,
Rogerio

This topic has been closed for replies.
Correct answer brian_p_dts

You don't override a live page's items. You override the master page items to the target page (passed in the override function). As in:

var myDoc = app.activeDocument;

var myDoc = app.activeDocument;
var myPages = myDoc.pages;

var myMasterPage = myPages[0].appliedMaster.pages[0];

var myItems = myMasterPage.allPageItems;
for (y=0; y<myItems.length; y++) {
    var myItem = myItems[y];

    if (myItem.constructor === TextFrame) {
        myItem.override(myPages[0]);
    }
}

1 reply

brian_p_dts
Community Expert
brian_p_dtsCommunity ExpertCorrect answer
Community Expert
March 8, 2024

You don't override a live page's items. You override the master page items to the target page (passed in the override function). As in:

var myDoc = app.activeDocument;

var myDoc = app.activeDocument;
var myPages = myDoc.pages;

var myMasterPage = myPages[0].appliedMaster.pages[0];

var myItems = myMasterPage.allPageItems;
for (y=0; y<myItems.length; y++) {
    var myItem = myItems[y];

    if (myItem.constructor === TextFrame) {
        myItem.override(myPages[0]);
    }
}
m1b
Community Expert
Community Expert
March 8, 2024

Remember to put the myItem.override() inside a try/catch block. This is because it will throw an error if the item has already been overridden.

- Mark