Skip to main content
magikct
Known Participant
July 27, 2021
Answered

Count pages with applied master

  • July 27, 2021
  • 4 replies
  • 850 views

Hi All.

Can anyone tell me how can I count doc pages eith certain master applied?

Thanks in advance.

This topic has been closed for replies.
Correct answer Charu Rajput

Hi,

Try following that will count from active page

var doc = app.activeDocument;
var _pages = doc.pages;
var _pageName = 'B-Content'
var activePageIndex = doc.layoutWindows[0].activePage.documentOffset;
var totalCountForMasterPages = 0;
for (var i = activePageIndex; i < _pages.length; i++) {
    if (_pages[i].appliedMaster && _pages[i].appliedMaster.name == _pageName)
        totalCountForMasterPages++;
}
alert("Pages with with '" + _pageName + "'  applied on it is : " + totalCountForMasterPages);

4 replies

SumitKumar
Inspiring
July 27, 2021

You can count multiple master pages applied document pages...

 

var doc = app.documents[0];
var pages = document.pages.everyItem().getElements();
var re = /(A-Master|B-Master)/i; //here you can add more master pages...
for(var rs = 0, counter=-1; ++counter<pages.length;){
	pages[counter].appliedMaster && re.test(pages[counter].appliedMaster.name) && rs++;
}
alert("Total pages with 'A-Master' and 'B-Master' are: " + rs);

- Sumit

-Sumit
magikct
magikctAuthor
Known Participant
July 27, 2021

You're awesome! Thank you! 

I have another question.

How can I count pages with applied master from active page to the end of document?

In this example i want to count "B-Content" pages and the result should be 4

p.1 -> A-Master
p.2 -> B-Content
p.3 -> B-Content
p.4 -> B-Content //active Page
p.5 -> B-Content
p.6 -> B-Content
p.7 -> B-Content
p.8 -> A-Master
p.9 -> A-Master
p.10 -> A-Master

 

Charu Rajput
Community Expert
Charu RajputCommunity ExpertCorrect answer
Community Expert
July 27, 2021

Hi,

Try following that will count from active page

var doc = app.activeDocument;
var _pages = doc.pages;
var _pageName = 'B-Content'
var activePageIndex = doc.layoutWindows[0].activePage.documentOffset;
var totalCountForMasterPages = 0;
for (var i = activePageIndex; i < _pages.length; i++) {
    if (_pages[i].appliedMaster && _pages[i].appliedMaster.name == _pageName)
        totalCountForMasterPages++;
}
alert("Pages with with '" + _pageName + "'  applied on it is : " + totalCountForMasterPages);
Best regards
magikct
magikctAuthor
Known Participant
July 27, 2021

Great! Awesome! Thank you very much! 🙂

brian_p_dts
Community Expert
Community Expert
July 27, 2021

Try this jsx: 

 

var nameToFind = "A-Master";

var pgs = app.documents[0].pages.everyItem().getElements();

var count = 0;

for (var i = 0; i < pgs.length; i++) {

    try { if (pgs[i].appliedMaster.name === nameToFind) { count++; } } catch(e) {}

}

alert(count);

Charu Rajput
Community Expert
Community Expert
July 27, 2021

Hi,

Try following

 

//Counting pages with master page applied with name 'A-Master'. Use name of your master page instead of 'A-Master'
var doc = app.activeDocument;
var _pages = doc.pages;
var totalCountForMasterPages = 0;
for (var i = 0; i < _pages.length; i++) {
    if (_pages[i].appliedMaster && _pages[i].appliedMaster.name == "A-Master")
        totalCountForMasterPages++;
}
alert("Pages with with 'A-Master' applied on it is : " + totalCountForMasterPages);

 

 

 

Best regards
m1b
Community Expert
Community Expert
July 27, 2021

It'd be good to add a check for no master page, too, just before testing the name.

if (_pages[i].appliedMaster)

 

Charu Rajput
Community Expert
Community Expert
July 27, 2021

@m1b 

Updated with your feedback 🙂

Best regards