Skip to main content
Obi-wan Kenobi
Legend
March 20, 2016
Answered

Update several TOCs in the same doc. …

  • March 20, 2016
  • 1 reply
  • 509 views

Hi,

Here's the code I've tried to write:

var myDoc = app.activeDocument;

var myTocStyles = myDoc.tocStyles;

var myTocNumber = myTocStyles.length;

for (i = myTocNumber.length; i >= 1; i++) {  

myDoc.createTOC(TOCStyle,true);

}

Of course, it doesn't work! 

What I'm trying (want) to do is update all the TOCs in the doc.

Thanks in advance for your wise thoughts! 

This topic has been closed for replies.
Correct answer Vamitul

You are close.

Check your "for" syntax.

for (var i=0; i<myTocNumber; i++){

myDoc.createTOC(myTocStyles,true);

}

1 reply

Vamitul
VamitulCorrect answer
Legend
March 20, 2016

You are close.

Check your "for" syntax.

for (var i=0; i<myTocNumber; i++){

myDoc.createTOC(myTocStyles,true);

}

Obi-wan Kenobi
Legend
March 20, 2016

Aha!  Hi Vamitul! Thanks to take a look! 

So, The script becomes:

var myDoc = app.activeDocument;

var myTocStyles = myDoc.tocStyles;

var myTocNumber = myTocStyles.length

for (var i=0; i<myTocNumber; i++){

myDoc.createTOC(myTocStyles,true);

}

I don't want to update the Toc 1 (myTocStyles[0], ID Toc by default), only the Toc 2 (myTocStyles[1]), 3 (myTocStyles[2]), …

The script doesn't work! 

Alert:

Obi-wan Kenobi
Legend
March 20, 2016

Aha! It works:

var myDoc = app.activeDocument;

var myTocStyles = myDoc.tocStyles;

var myTocNumber = myTocStyles.length

for (var i=1; i<myTocNumber; i++){

myDoc.createTOC(myTocStyles,true);

}

Thanks Vamitul!    I've appreciated your help!