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;
}
使用記事本或者notepad 等文本編輯器,将代碼拷貝至文本文件,然後修改後綴名為js或者jsx,最後再illustrator軟件菜單文件》腳本》其它腳本,選擇腳本文件,點執行即可,也可以将腳本放在預設文件夾内,會顯示再腳本下的二級子菜單。如下圖所示:
3.作者答疑
代碼長度過長,如需全部項目或有疑問,請留言。
提示: 作者知了-聯系方式1 提示: 作者知了-聯系方式2
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!