2012-10-17 73 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`