Welcome Dialog

Welcome to the Community!

We have a brand new look! Take a tour with us and explore the latest updates on Adobe Support Community.


Count pages with applied master

Explorer ,
Jul 27, 2021 Jul 27, 2021

Copy link to clipboard

Copied

Hi All.

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

Thanks in advance.

TOPICS
Scripting

Views

109

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 3 Correct answers

Adobe Community Professional , Jul 27, 2021 Jul 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);

Likes

Translate

Translate
Enthusiast , Jul 27, 2021 Jul 27, 2021
It'd be good to add a check for no master page, too, just before testing the name.if (_pages[i].appliedMaster)

Likes

Translate

Translate
Adobe Community Professional , Jul 27, 2021 Jul 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...

Likes

Translate

Translate
Adobe Community Professional ,
Jul 27, 2021 Jul 27, 2021

Copy link to clipboard

Copied

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

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Enthusiast ,
Jul 27, 2021 Jul 27, 2021

Copy link to clipboard

Copied

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

if (_pages[i].appliedMaster)

 

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Jul 27, 2021 Jul 27, 2021

Copy link to clipboard

Copied

@m1b 

Updated with your feedback 🙂

Best regards

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Jul 27, 2021 Jul 27, 2021

Copy link to clipboard

Copied

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);

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Jul 27, 2021 Jul 27, 2021

Copy link to clipboard

Copied

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

 

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Jul 27, 2021 Jul 27, 2021

Copy link to clipboard

Copied

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

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Jul 27, 2021 Jul 27, 2021

Copy link to clipboard

Copied

Great! Awesome! Thank you very much! 🙂

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Jul 27, 2021 Jul 27, 2021

Copy link to clipboard

Copied

LATEST

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

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines