查找徽标周围的空间,并在该空间中存在任何页面项目时发出警报
我正在尝试找到附近或附近徽标周围的任何对象。
通过将徽标高度的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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
@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;