[英]Selecting textFrames inside of a group in InDesign CS6
類似於我之前在基於頁面的geometryBounds或部分名稱查找頁面上的textFrame時遇到的問題,現在我遇到了查找textFrame(如果它們在組內)的問題。 如果我使用所有textFrame的數組,例如:
var textFramesArray = document.textFrames.everyItem().getElements();
它不會發現,是一組內的任何textFrames。 如果textFrame在組中,我如何弄清楚如何引用它? 即使必須取消分組,也可以,但是我什至不知道如何在頁面上找到分組!
頁面上的組是page.groups
...,但是無論如何您都不需要這樣做。 Fabian的回答很好,但是它並沒有考慮分組的問題,也沒有剪貼蒙版,也沒有考慮表格和腳注等中的文字框架。
這是一種替代方法:可以保證allPageItems
返回組內或其他框架內或其他框架內的所有類型和說服力的所有頁面項。 您可以依次檢查,處理每個文本,或構建文本框數組以休閑使用:
allframes = app.activeDocument.allPageItems;
textframes = [];
for (i=0; i<allframes.length; i++)
{
if (allframes[i] instanceof TextFrame)
textframes.push(allframes[i]);
}
alert (textframes.length);
嘗試這個:
// this script needs:
// - a document with one page
// - some groups with textframes in it on the first page
var pg = app.activeDocument.pages[0];
var groups = pg.groups;
var tf_ingroup_counter = 0;
for(var g = 0; g < groups.length;g++){
var grp = groups[g];
for(var t = 0; t < grp.textFrames.length;t++){
var tf = grp.textFrames[t];
if(tf instanceof TextFrame){
tf_ingroup_counter++;
}
}
}
alert("I found on page " + pg.name +"\n" + pg.textFrames.length
+" textframes\nOh and there are also "
+tf_ingroup_counter+ " hidden in groups");
您的任務是獲取圖層或文檔中的所有文本框架。 這些文本框架是否在組中。 這是通過allPageItems
的屬性allPageItems
。 例如使用這個:
var items=app.activeDocument.allPageItems;
這將為您提供項目中和組內的所有文本框架。 現在,您可以進行任何操作。 您可以檢查items
調試控制台上,這將給所有類型的objects.And的,那么你可以檢查textframe
items[i].constructor.name =='TextFrame'
現在您可以將每個對象存儲在類型數組中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.