0

以前、geometricBounds に基づいて、またはその名前の一部に基づいてページ上の textFrame を検索する際の問題と同様に、グループ内にある場合に textFrames を検索するという問題に直面しています。次のようなすべての textFrames の配列を使用する場合:

var textFramesArray = document.textFrames.everyItem().getElements();

グループ内にある textFrames は見つかりませんグループ内にある場合、textFrame を参照する方法を理解するにはどうすればよいですか? グループのグループ化を解除する必要がある場合でも問題ありませんが、ページでグループを見つける方法さえわかりません!

4

3 に答える 3

7

ページ上のグループはpage.groups... ですが、とにかくこれは必要ありません。ファビアンの答えは良いですが、グループ内のグループは考慮されていません-クリッピングマスクも、表や脚注内のテキストフレームも考慮されていません(など)。

別のアプローチは次のとおりです。グループや他のフレームなどの内部で、すべての種類と説得力のあるすべて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);
于 2013-07-17T08:52:39.857 に答える
2

これを試して:

// 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");
于 2013-07-17T05:57:59.990 に答える