300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > illustrator插件-拼版功能开发-一键拼版-js脚本开发-ai插件

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

时间:2018-09-19 21:51:46

相关推荐

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

文章目录

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 < w; widx += 1) {for (var hidx = 0; hidx < h; hidx += 1) {var o = obj.duplicate(doc, ElementPlacement.PLACEATEND);o.position = [docLeft + left + (widx * objWidth), (docTop - top) - (hidx * objHeight)];}}var lines = doc.groupItems.add();var mm2 = 5.66929;var mm4 = 11.33858;for (var hidx = 0; hidx <= h; hidx += 1) {var a = (docLeft + left) - mm2;var b = a - mm4;var c = (docTop - top) - (hidx * objHeight);drawLine(lines, [[a, c],[b, c]]);var a = docLeft + left + (w * objWidth) + mm2;var b = a + mm4;var c = (docTop - top) - (hidx * objHeight);drawLine(lines, [[a, c],[b, c]]);}for (var widx = 0; widx <= w; widx += 1) {var a = (docTop - top) + mm2;var b = a + mm4;var c = docLeft + left + (widx * objWidth);drawLine(lines, [[c, a],[c, b]]);var a = ((docTop - top) - (h * objHeight)) - mm2;var b = a - mm4;var c = docLeft + left + (widx * objWidth);drawLine(lines, [[c, a],[c, b]]);}obj.remove();alert("横: " + w + " 纵: " + h + " 共计: " + (w * h));}matrixmakeup();

2.作者答疑

如有疑问,请留言。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。