2012-10-17 70 views
2

我有10页充满文本InDesign文档某一段落样式的样式文本的文本和页码。该文本是风格不同的段落样式,其中一些是有关建设内容的​​定制表格。的InDesign脚本:获取与使用JavaScript

有两个相关的段落样式,“头1”和“头2”,从我试图建立自己的内容,我想在一个文本文件导出表。

我需要得到相关的信息是样式为“头1”和“头2”和相应的页码的文字。

我试图通过grep来实现这一目标,是成功的一半,但根除牛瘟扫描逐页整个文档,而不是网页。

有没有办法去通过各种风格的文本由段落样式逐页?

在此先感谢!

回答

1

是。

给看看到的InDesign API的对象模型。

你有类页面,以便遍历所有的页面,使用方法长度

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

对,每个TextFrame使用类段落遍历每个TextFrame

里面的每个段落,得到你想要的属性。

Read this documentation to get a good start

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`