InDesign の JavaScript でドキュメントの目次を更新する
InDesign の JavaScript でドキュメントの目次を更新したいのだが、目次を作成する Document.createTOC()
メソッドはあるものの、更新用のメソッドらしいものがない模様。
menuActions
の invoke()
でまわす感じになるようだ。
以下、開いている indd ドキュメントの目次を更新するサンプルコード。
//DESCRIPTION:開いているドキュメントの目次を更新する var docIDs = extractDocIDs(); for (var i = docIDs.length - 1; i >= 0; i--) { var myDoc = app.documents.itemByID(docIDs[i]); updateTOCs(myDoc); } function extractDocIDs() { var docIDs = []; for (var i = 0; i < app.documents.length; i++) { docIDs.push(app.documents[i].id); } return docIDs; } function updateTOCs(myDoc) { var targetMenuItem = app.menuActions.itemByName("目次の更新"); app.activeDocument = myDoc; var stories = myDoc.stories; for(var i = 0; i < stories.length; i++) { var story = stories[i]; if(story.storyType != StoryTypes.TOC_STORY) { continue; } else { story.textContainers[0].select(); try { targetMenuItem.invoke(); } catch(e) { $.writeln (myDoc.name + ": \n" + e); } } } }
参考ページ: