查找徽标周围的空间,并在该空间中存在任何页面项目时发出警报

发布于 2025-01-17 11:18:51 字数 3645 浏览 3 评论 0原文

我正在尝试找到附近或附近徽标周围的任何对象。

通过将徽标高度的1/3添加到其边界,并将所有页面列表与边界进行比较。

如何跳过图形链接的父对象?对于以下脚本 这是脚本:

function _clear_space_around_logo(){  
    var myDoc = app.activeDocument;
    var myPages = myDoc.pages;
    for(var a=0;a<myPages.length;a++){
        var myGraphics = myPages[a].allGraphics;
        for(var b=0;b<myGraphics.length;b++){
            if(myGraphics[b].itemLink != null){
                if(myGraphics[b].itemLink.name.search(/Logo/i)>0){
                    if(myGraphics[b].parent.rotationAngle == 0 || myGraphics[b].parent.rotationAngle == 180){
                        var geo0 = myGraphics[b].geometricBounds[0];
                        var geo1 = myGraphics[b].geometricBounds[1];
                        var geo2 = myGraphics[b].geometricBounds[2];
                        var geo3 = myGraphics[b].geometricBounds[3];
                        var requiredHeight = (geo2-geo0)/3;
                        var reuqiredGeo0 = geo0-requiredHeight;
                        var reuqiredGeo1 = geo1-requiredHeight;
                        var reuqiredGeo2 = geo2+requiredHeight;
                        var reuqiredGeo3 = geo3+requiredHeight;
                    }
                    else{
                        var geo0 = myGraphics[b].geometricBounds[0];
                        var geo1 = myGraphics[b].geometricBounds[1];
                        var geo2 = myGraphics[b].geometricBounds[2];
                        var geo3 = myGraphics[b].geometricBounds[3];
                        var requiredHeight = (geo3-geo1)/3;
                        var reuqiredGeo0 = geo0-requiredHeight;
                        var reuqiredGeo1 = geo1-requiredHeight;
                        var reuqiredGeo2 = geo2+requiredHeight;
                        var reuqiredGeo3 = geo3+requiredHeight;
                    }
                    var myPagesItems = myPages[a].allPageItems;
                    for(var c=0;c<myPagesItems.length;c++){
                        if(myPagesItems[c].itemLayer.visible == true && myPagesItems[c].visible == true){
                            var itemGeo0 = myPagesItems[c].geometricBounds[0];
                            var itemGeo1 = myPagesItems[c].geometricBounds[1];
                            var itemGeo2 = myPagesItems[c].geometricBounds[2];
                            var itemGeo3 = myPagesItems[c].geometricBounds[3];
                            
                            if(itemGeo0>myPages[a].bounds[0] && itemGeo1>myPages[a].bounds[1]&&
                                itemGeo2<myPages[a].bounds[2] && itemGeo3<myPages[a].bounds[3]){
                                if(itemGeo2 > reuqiredGeo0 && itemGeo3 > reuqiredGeo1 &&
                                    itemGeo0 < reuqiredGeo2 && itemGeo1 < reuqiredGeo3){
                                    if(myPagesItems[c].constructor.name != "Group"){
                                        try{
                                            if(myPagesItems[c].itemLink.name.search(/Logo/i)==-1){
                                                alert(myPages[a].name);
                                            }
                                        }
                                        catch(e){
                                            alert(myPages[a].name);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

谢谢

I'm trying to find any object that is near or around the logo.

By adding 1/3 of the logo height to its bounds and comparing all the pageitems with the bounds.

How to skip the parent object of the graphic link? for the below script
Here is the script:

function _clear_space_around_logo(){  
    var myDoc = app.activeDocument;
    var myPages = myDoc.pages;
    for(var a=0;a<myPages.length;a++){
        var myGraphics = myPages[a].allGraphics;
        for(var b=0;b<myGraphics.length;b++){
            if(myGraphics[b].itemLink != null){
                if(myGraphics[b].itemLink.name.search(/Logo/i)>0){
                    if(myGraphics[b].parent.rotationAngle == 0 || myGraphics[b].parent.rotationAngle == 180){
                        var geo0 = myGraphics[b].geometricBounds[0];
                        var geo1 = myGraphics[b].geometricBounds[1];
                        var geo2 = myGraphics[b].geometricBounds[2];
                        var geo3 = myGraphics[b].geometricBounds[3];
                        var requiredHeight = (geo2-geo0)/3;
                        var reuqiredGeo0 = geo0-requiredHeight;
                        var reuqiredGeo1 = geo1-requiredHeight;
                        var reuqiredGeo2 = geo2+requiredHeight;
                        var reuqiredGeo3 = geo3+requiredHeight;
                    }
                    else{
                        var geo0 = myGraphics[b].geometricBounds[0];
                        var geo1 = myGraphics[b].geometricBounds[1];
                        var geo2 = myGraphics[b].geometricBounds[2];
                        var geo3 = myGraphics[b].geometricBounds[3];
                        var requiredHeight = (geo3-geo1)/3;
                        var reuqiredGeo0 = geo0-requiredHeight;
                        var reuqiredGeo1 = geo1-requiredHeight;
                        var reuqiredGeo2 = geo2+requiredHeight;
                        var reuqiredGeo3 = geo3+requiredHeight;
                    }
                    var myPagesItems = myPages[a].allPageItems;
                    for(var c=0;c<myPagesItems.length;c++){
                        if(myPagesItems[c].itemLayer.visible == true && myPagesItems[c].visible == true){
                            var itemGeo0 = myPagesItems[c].geometricBounds[0];
                            var itemGeo1 = myPagesItems[c].geometricBounds[1];
                            var itemGeo2 = myPagesItems[c].geometricBounds[2];
                            var itemGeo3 = myPagesItems[c].geometricBounds[3];
                            
                            if(itemGeo0>myPages[a].bounds[0] && itemGeo1>myPages[a].bounds[1]&&
                                itemGeo2<myPages[a].bounds[2] && itemGeo3<myPages[a].bounds[3]){
                                if(itemGeo2 > reuqiredGeo0 && itemGeo3 > reuqiredGeo1 &&
                                    itemGeo0 < reuqiredGeo2 && itemGeo1 < reuqiredGeo3){
                                    if(myPagesItems[c].constructor.name != "Group"){
                                        try{
                                            if(myPagesItems[c].itemLink.name.search(/Logo/i)==-1){
                                                alert(myPages[a].name);
                                            }
                                        }
                                        catch(e){
                                            alert(myPages[a].name);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

微凉 2025-01-24 11:18:51

@brianp311

存储父容器的ID,然后在支票上跳过。

var pid = mygraphics [b] .parent.id;

然后...

if(mypageItems [c] .id == pid)继续;

@brianp311

Store the id of the parent container and skip it on your check.

var pid = myGraphics[b].parent.id;

Then...

if (myPageItems[c].id == pid) continue;

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文