跟菜鸟学习illustrator用JavaScript脚本语言写代码,实现自动化

这是我第一眼看到用脚本实现画板切换方向的插件,当时觉得非常神奇,怀着好奇心就打开文件研究起来啦,慢慢入坑,不断摸索,到最后写出了自己的原创插件,如:壹佰脚面板、批量替换、矩阵复制、文字操作大师、批量修改文字、画板大师、图层管理大师、汉字简繁体转换、拼音一键生成、汉字拆笔画等等。

一键转化画板方向

最开始在这个网站找到一些脚本开始学习,http://556.sub.jp/scriptclip/ ,慢慢的也可以开始自己写脚本了,下面这个一键创建画板大小矩形脚本就是当时写的。

一键创建画板大小矩形

#target illustrator;

singleArtboard();

function singleArtboard() {
var docRef = app.activeDocument;
var artboardRef= docRef.artboards;

var rectColor = new CMYKColor(); 
rectColor.cyan = 0; 
rectColor.magenta = 100; 
rectColor.yellow = 0; 
rectColor.black = 0; 

var i=artboardRef.getActiveArtboardIndex();
//var rect=docRef.pathItems.rectangle(rect=artboardRef[i].artboardRect);
var top=artboardRef[i].artboardRect[1];
var left=artboardRef[i].artboardRect[0];
var width= artboardRef[i].artboardRect[2]-artboardRef[i].artboardRect[0];
var height=artboardRef[i].artboardRect[1]-artboardRef[i].artboardRect[3];

var rect=docRef.pathItems.rectangle(top,left,width,height);
rect.strokeColor=rectColor;
rect.fillColor = new NoColor();
rect.selected=true;
}

创建矩形

画一个 长为3,宽为2的矩形

1、首先准备illustrator脚本和函数资料,如下文件:
Illustrator JavaScript Scripting Reference2022.pdf

在PathItems 下找到了画矩形的方法:

rectangle(top,left,width,height)

我们已经已知矩形的长度和宽度,那么top和left应该就是矩形左上角的坐标位置,这样的话我们就可以暂定矩形在(0,0)位置,那么代码就是:

app.activeDocument.pathItems.rectangle(0,0,3,2); //在当前文档的最顶部图层里创建了矩形

2、现在我们还没有给矩形附上属性,如描边、填充颜色、所在图层等等,好我们再接着增加代码:

var doc = app.activeDocument;
var currentLayer = doc.layers[0];
app.defaultStroked = true;
app.defaultFilled = true;
var rect=currentLayer.pathItems.rectangle(0,0,cm2pt(3),cm2pt(2)); //在layers[0]上创建长为3mm宽为2mm的矩形。

//厘米转为point点单位
function cm2pt(n) {
    return n * 28.3464567;
}

3、现在我们想把矩形的位置改到画板的左上角

var doc = app.activeDocument;
var currentLayer = doc.layers[0];
app.defaultStroked = true;
app.defaultFilled = true;

//得到画板的位置和大小
// returns an Artboard with top, left, width & height properties, including Margins
function getABbounds(artboard, padding) {
    var activeAB = artboard;
    var margins = padding;
    var abBounds = activeAB.artboardRect; // get bounds [left, top, right, bottom]
    var ableft = abBounds[0] - margins;
    var abtop = abBounds[1] + margins;
    var abright = abBounds[2] + margins;
    var abbottom = abBounds[3] - margins;

    var abwidth = abright - ableft;
    var abheight = abtop - abbottom;

    var AB = {
        left: ableft,
        top: abtop,
        width: abwidth,
        height: abheight
    };
    return AB;
}

var abnumber=doc.artboards.getActiveArtboardIndex();
var ab=getABbounds(doc.artboards[abnumber],0)
var rect=currentLayer.pathItems.rectangle(ab.top,ab.left,cm2pt(3),cm2pt(2)); //在layers[0]上创建长为3mm宽为2mm的矩形。

//厘米转为point点单位
function cm2pt(n) {
    return n * 28.3464567;
}

 文字转曲

// create text outlines if desired. 转曲
if (confirm("Create text outlines?", true)) {
    while (doc.textFrames.length != 0) {
        doc.textFrames[0].createOutline();
    }
}

  • 13
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值