【问题标题】:Selecting textFrames inside of a group in InDesign CS6在 InDesign CS6 中选择组内的 textFrame
【发布时间】:2013-07-16 19:30:16
【问题描述】:

与我之前根据其几何边界或部分名称在页面上查找 textFrame 的问题类似,我现在遇到了在组内查找 textFrame 的问题。如果我使用所有 textFrames 的数组,例如:

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

不会找到组内的任何文本框。如果 textFrame 在组内,我如何弄清楚如何引用它?即使必须取消分组,也可以,但我什至无法弄清楚如何在页面上找到组!

【问题讨论】:

    标签: javascript adobe-indesign extendscript


    【解决方案1】:

    页面上的组是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);
    

    【讨论】:

    • 这似乎是一种更好的方法,因为它会在组和其他文本框内递归地获取文本框。
    【解决方案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");
    

    【讨论】:

      【解决方案3】:

      您的任务是获取图层或文档中的所有文本框。这些文本框架是否在一个组中。这是通过allPageItems 的属性完成的。例如使用这个:-

      var items=app.activeDocument.allPageItems;
      

      这将为您提供项目中和组内的所有文本框架。现在您可以进行任何操作。您可以在调试控制台上查看items,它将提供所有对象类型。然后您可以检查文本框

      items[i].constructor.name =='TextFrame'
      

      现在您可以将每个对象存储在类型数组中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-12
        • 1970-01-01
        相关资源
        最近更新 更多