2013-03-05 23 views
0

我正在尋找有關這個主題的任何內容,我認爲這很重要。所以這裏是我的問題:如何在JavaScript中使用Indesign CS6查找文本框架? (我可以通過包含特定段落樣式或什麼的文本框架進行查詢)

  • 如何在JavaScript中找到Indesign CS6中的文本框架?
  • 我可以通過包含特定段落樣式的文本框查詢嗎?
  • 我可以在我的文本框架(這是在母版頁)設置某種名稱以獲得它在JavaScript?

回答

3

好的,經過一番研究,我發現你可以通過打開「腳本標籤」,選擇你想要的對象,並將標籤名寫入「腳本標籤」面板。您不必單擊「確定」或「無」,它會自動保存該對象的標籤。

當你這樣做後,你可以檢查對象上的「.label」屬性,當你找到帶有該標籤的對象時,你找到了它。多個對象可以具有相同的標籤。

下面是一個帶有輔助功能 「selectWhere」 的例子:

var document = app.documents.item(0); // active document 
var allTextFrames = toArray(document.textFrames); 
var textFrames = selectWhere("chapterLetter", "label", allTextFrames); 

function selectWhere(value, key, array){ 
    var i = array.length; var t; var filtered = []; 
    while(i--){ 
      t = array[i]; 
      if(t && t[key] == value){ 
       filtered.push(t); 
      } 
    } 
    return filtered; 
} 

function toArray(objects){ 
    var i = objects.length; var array = []; 
    while(i--){ 
      array.push(objects[i]); 
    } 
    return array; 
} 
0

1)回答你的第一個問題是: - solved in this thread

2)現在你得到textframes.So的陣列你可以查詢得到的段落樣式的文本框

var paraStyle1 = app.activeDocument.paragraphStyles.itemByName("styleA"); 
    var paraStyle2 = app.activeDocument.paragraphStyles.itemByName("styleB"); 
    if (paraStyle1.isValid && paraStyle2.isValid) 

3)通過paraStyle1.name你可以得到樣式的名稱。參見parastyle1是段落樣式對象,因此獲取樣式對象並通過此屬性查找。

相關問題