簡體   English   中英

如何使用JavaScript在Indesign CS6中找到文本框架? (我可以通過包含特定段落樣式或什么樣式的文本框架進行查詢)

[英]How to find a text frame in Indesign CS6 with javascript? (I can query by text-frames containing a particular paragraph style or what?)

我一直在尋找indesign腳本,但沒有找到關於此主題的任何東西,我認為這很重要。 所以這是我的問題:

  • 如何使用JavaScript在Indesign CS6中找到文本框架?
  • 我可以通過包含特定段落樣式的文本框架進行查詢嗎?
  • 我可以在文本框(在母版頁中)上設置某種名稱來使用javascript嗎?

好的,經過一些研究,我發現您可以通過打開“腳本標簽”,選擇所需的對象並將標簽名稱寫入“腳本標簽”面板中來為對象設置標簽。 您無需單擊“確定”或什么都不需要,它將自動保存該對象的標簽。

之后,您可以檢查對象的“ .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;
}

1)第一個問題的答案是:- 在此線程中解決

2)現在您將獲得文本框架數組。因此您可以查詢以獲取文本框架上的段落樣式

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM