2

我有一个包含 10 页的 inDesign 文档,里面填满了文本。文本使用不同的段落样式设置样式,其中一些与构建自定义目录有关。

有两种相关的段落样式,“Header1”和“Header2”,我试图从中构建自己的目录,我想将其导出到文本文件中。

我需要获取的相关信息是带有“Header1”和“Header2”样式的文本以及相应的页码。

我试图通过 GREP 来实现这一点并且成功了一半,但是 GREP 扫描整个文档而不是逐页扫描。

有没有办法按段落样式逐页浏览所有样式文本?

提前致谢!

4

2 回答 2

2

如果您不想使用 GREP,则可以遍历故事的每个段落,以收集应用了特定样式的段落。

在下面的示例代码中,我收集了para_with_style变量中的段落:

var doc = app.activeDocument;

var story = doc.stories[0];

// Get every paragraph in `story` (using `everyItem().getElements()` is more efficient)
var paras = story.paragraphs.everyItem().getElements();

// Collect every paragraph with a certain paragraph style
var applied_style = doc.paragraphStyles.itemByName('style-name');
var paras_with_style = [];
for (var i=0,l=paras.length; i<l; i++) {
   var para = paras[i];
   if (para.appliedParagraphStyle == applied_style) {
      paras_with_style.push(para);
   }
}

// Do something with each `para` in `paras_with_style`
于 2012-10-18T14:19:07.160 回答
1

是的。

查看 InDesign API 的对象模型。

您有 Pages 类,因此使用方法 length 遍历所有 Pages

然后,在这个循环中,为每个页面获取所有 TextFrame

对于每个 textFrame 使用 Class Paragraph 来迭代每个 TextFrame

在每个段落中,获取您想要的属性。

于 2012-10-17T22:09:04.820 回答