1.算法程序

illustrator是矢量编辑软件,画板是绘制处理的重要容器,开发一个页面适配对象功能,源代码如下所示:

var doc = app.activeDocument; var obj = doc.selection; var bnd = new Array(); if (documents.length > 0) { if (obj.length > 0) { bnd = getBounds(obj); W = bnd[2] - bnd[0]; H = bnd[1] - bnd[3]; X = bnd[0]; Y = bnd[1]; } else { doc.rulerOrigin = Array(0, 0); bnd[0] = 0; bnd[2] = doc.width; bnd[1] = doc.height; bnd[3] = 0; } doc.cropBox = bnd; doc.cropStyle = CropOptions.Standard; } function getBounds(obj) { var selObj1 = new Array(); var selObj2 = new Array(); var vgb1 = new Array(); var vgb2 = new Array(); var n = obj.length; if (n > 0) { if (obj[0].typename == "GroupItem" && obj[0].clipped && obj[0].pageItems.length > 1) { clipObj = obj[0].pathItems[0].geometricBounds; vgb1 = clipObj; } else { selObj1 = obj[0]; vgb1 = selObj1.visibleBounds; } if (n > 1) { for (var i = 1; i < n; i = 1) { selObj2 = obj[i]; if (obj[i].typename == "GroupItem" && obj[i].clipped && obj[i].pageItems.length > 1) { vgb2 = obj[i].pathItems[0].geometricBounds; } else { vgb2 = selObj2.visibleBounds; } if (vgb1[0] > vgb2[0]) { vgb1[0] = vgb2[0] } if (vgb1[1] < vgb2[1]) { vgb1[1] = vgb2[1] } if (vgb1[2] < vgb2[2]) { vgb1[2] = vgb2[2] } if (vgb1[3] > vgb2[3]) { vgb1[3] = vgb2[3] } } } } return vgb1; }

2.文本转执行

使用记事本或者notepad 等文本编辑器,将代码拷贝至文本文件,然后修改后缀名为js或者jsx,最后再illustrator软件菜单文件》脚本》其它脚本,选择脚本文件,点执行即可,也可以将脚本放在预设文件夹内,会显示再脚本下的二级子菜单。如下图所示:

illustrator产品效果图教程(illustrator插件-画板功能开发-页面适配对象-js脚本开发-ai插件)(1)

3.作者答疑

代码长度过长,如需全部项目或有疑问,请留言。

提示: 作者知了-联系方式1 提示: 作者知了-联系方式2

,