ai脚本选择相同重叠文本

作者:胡说八道转稿 来源:飞特会员投稿 浏览次数:加载中... 网友评论 0

飞特的朋友们,大家好。我是飞特会员胡说八道。今天给大家带来的这个教程像飞特的朋友们介绍用ai脚本选择相同重叠文本,难度中等。算是和朋友们分享一个技巧吧!\
fevte说明:

该脚本可以选择重叠的文本对象,以避免文本对象重叠的现象产生。
注意:文本对象必须相同,即内容、大小写。

要用“文件-脚本”来使用,以cs3为例应放在"c:\program files\adobe\adobe illustrator cs3\预设\脚本"下。
当然,也可以放置在其他文件夹中,通过ctrl+f12定位到脚本所在处来使用。
复制以下全部文字到记事本中,保存为以.js结尾的脚本文件(如:脚本.js)即可。

/////////////////////////////////////////////////////////////////
//select replicated (overlaping) text items v.1 -- cs,cs2
//>=--------------------------------------
// this script removes all duplicate overlaping text items from a document.
// the only parameters it checks are top and left coordinates, and text contents.
// anchor points within one point of each other are considered the same.
// (tolerance can be adjusted by changing the 'tolerance' value.)
//
// the lower duplicate objects are selected for manual removal.
//
//>=--------------------------------------
// js code (c) copyright: john wundes ( john@wundes.com ) www.wundes.com
//copyright full text here: http://www.wundes.com/js4ai/copyright.txt
//////////////////////////////////////////////////////////////////
var selname = "仅本文档中)";
if(selection.length >0){
selname = "current selection";
var sel= activedocument.selection;
var selectedtextframes = new array(0);
for (var all in sel){
   if(sel[all].typename == "textframe"){
    selectedtextframes.push(sel[all]);
   }
}
sel = selectedtextframes;

} else{
var sel= activedocument.textframes;
}

var dupetextframes= new array(0);
var tolerance = 1;
var slen = sel.length;

for(var all=0; all <slen;all++){
checkdupe(sel,all);
}
//
alert(dupetextframes.length + " 个重叠的相同文本对象被找到("+selname+"");
if(dupetextframes.length>0){

activedocument.selection = [];
for (all in dupetextframes){
   dupetextframes[all].selected = true;

}
}
//---------------------------------------

function checkdupe(ob,n){
//t == objects so far

for(var t=0; t <n ;t++){
   if(ob[t].typename == "textframe"){
    if (iswithin(ob[n].left,ob[t].left,tolerance) &&
     iswithin(ob[n].top,ob[t].top,tolerance) &&
     ob[n].contents == ob[t].contents){
    dupetextframes.push(ob[n]);
    break;
   
    }
   }
}
}
function iswithin(yposa,yposb,tol){
if(yposa==yposb){return true};
if(finddiff(yposa,yposb)<tol){
   return true;
}
return false;
}
function finddiff(a,b){
if( a>0 && b>0 && b>a ||
   a<0 && b>0     ||
   a<0 && b<0 && a>b ){
    return math.abs(b-a);
}
return math.abs(a-b);
}

[错误报告] [推荐] [收藏] [打印] [关闭] [返回顶部]

  • 飞特网大部分教程属网友投稿,并不代表飞特网立场。如果您的教程在飞特网发布后没有注明作者和出处请联系我们处理。
    飞特网会员发布的所有作品版权规作者所有,未经作者同意,任何人不得将其用于商业目的;
    如发现本站有含色情等违反国家法律法规内容的图片及涉及个人肖像权及版权的内容,请即时通知我们,飞特网将立刻删除相关内容.本站原创内容,欢迎转载.请注明出处和作者,谢谢!
    访问本站推荐使用分辨率1280*1024,internet explorer7.0浏览器。