我正在尋找有關這個主題的任何內容,我認爲這很重要。所以這裏是我的問題:如何在JavaScript中使用Indesign CS6查找文本框架? (我可以通過包含特定段落樣式或什麼的文本框架進行查詢)
- 如何在JavaScript中找到Indesign CS6中的文本框架?
- 我可以通過包含特定段落樣式的文本框查詢嗎?
- 我可以在我的文本框架(這是在母版頁)設置某種名稱以獲得它在JavaScript?
我正在尋找有關這個主題的任何內容,我認爲這很重要。所以這裏是我的問題:如何在JavaScript中使用Indesign CS6查找文本框架? (我可以通過包含特定段落樣式或什麼的文本框架進行查詢)
好的,經過一番研究,我發現你可以通過打開「腳本標籤」,選擇你想要的對象,並將標籤名寫入「腳本標籤」面板。您不必單擊「確定」或「無」,它會自動保存該對象的標籤。
當你這樣做後,你可以檢查對象上的「.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)回答你的第一個問題是: - 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是段落樣式對象,因此獲取樣式對象並通過此屬性查找。