您当前的位置: 首页 > 

插件开发

暂无认证

  • 1浏览

    0关注

    492博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

illustrator插件-拼版功能开发-一键拼版-js脚本开发-ai插件

插件开发 发布时间:2022-03-17 07:51:31 ,浏览量:1

文章目录
    • 1.算法程序
    • 2.作者答疑

1.算法程序

  illustrator是矢量编辑软件,画板是绘制处理的重要容器,在印刷方面的一个重要功能就是拼版,开发一个一键拼版功能,源代码如下所示:

function makeup(docWidth, docHeight, objWidth, objHeight, marginTop, marginRight, marginBottom, marginLeft) {
    var width = (docWidth - marginLeft) - marginRight;
    var height = (docHeight - marginTop) - marginBottom;
    var w = parseInt(width / objWidth);
    var h = parseInt(height / objHeight);
    var wd = (width - (w * objWidth)) / 2;
    var hd = (height - (h * objHeight)) / 2;
    return {
        top: marginTop + hd,
        left: marginLeft + wd,
        landscape: w,
        portrait: h
    };
}

function makeup2(docWidth, docHeight, objWidth, objHeight, marginTop, marginRight, marginBottom, marginLeft) {
    var r1 = makeup(docWidth, docHeight, objWidth, objHeight, marginTop, marginRight, marginBottom, marginLeft);
    var r2 = makeup(docHeight, docWidth, objWidth, objHeight, marginTop, marginRight, marginBottom, marginLeft);
    var x1 = r1.landscape * r1.portrait;
    var x2 = r2.landscape * r2.portrait;
    var r = null;
    if (x1 > x2) {
        r = r1;
        r.dir = 0;
    } else {
        r = r2;
        r.dir = 1;
    }
    return r;
}

function getDocTopLeft(doc) {
    var pos = doc.rulerOrigin;
    if (pos[0] != 0 || pos[1] != 0) {
        [doc.height + pos[1], pos[0]];
    }
    return [0, doc.height];
}

function drawLine(pObj, points) {
    var line = pObj.pathItems.add();
    line.stroked = true;
    line.filled = false;
    line.strokeWidth = 0.566929;
    var color = new CMYKColor();
    color.black = 100;
    color.cyan = 0;
    color.magenta = 0;
    color.yellow = 0;
    line.strokeColor = color;
    line.setEntirePath(points);
}

function matrixmakeup() {
    var doc = app.activeDocument;
    var obj = doc.selection[0];
    if (!obj) {
        alert("请选择需要自动排版的对象!");
        return;
    }
    var docWidth = doc.width;
    var docHeight = doc.height;
    var objWidth = obj.width;
    var objHeight = obj.height;
    var margin = 14.173225;
    var madeup = makeup2(docWidth, docHeight, objWidth, objHeight, margin, margin, margin, margin);
    var w = madeup.landscape;
    var h = madeup.portrait;
    var top = madeup.top;
    var left = madeup.left;
    var dir = madeup.dir;
    if (dir == 1) {

    }
    var docPos = getDocTopLeft(doc);
    var docLeft = docPos[0];
    var docTop = docPos[1];
    for (var widx = 0; widx             
关注
打赏
1665481431
查看更多评论
0.0424s