我有一个inDesign文档,其中10页填充了文本。文本采用不同的段落样式设置样式,其中一些样式与构建自定义目录相关。
有两个相关的段落样式,“Header1”和“Header2”,我正在尝试构建我自己的目录,我想在文本文件中导出。
我需要获取的相关信息是使用“Header1”和“Header2”设置样式的文本以及相应的页码。
我尝试通过GREP实现这一目标并且成功了一半,但GREP扫描整个文档而不是逐页扫描。
有没有办法按页面按段落样式浏览所有样式的文本?
提前致谢!
答案 0 :(得分:1)
是
查看InDesign API的Object模型。
您有类所以使用方法长度
迭代所有页面然后,在这个循环中,为每个页面获取所有TextFrames
对于每个textFrame,使用Class Paragraph迭代每个TextFrame
在每个段落中,获取所需的属性。
答案 1 :(得分:1)
如果您不想使用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`