illustrator插件--常用功能开发--流水号生成器--js脚本开发--AI插件

  illustrator是矢量编辑软件,画板是绘制处理的重要容器,在印刷方面的一个重要功能就是流水号生成器,开发一个流水号生成器功能,以下功能仅用于学习交流,请勿用于非法用途和商业用途,源代码如下所示:


var dat1 = new Date();
var year1 = dat1.getFullYear();
var mon1 = dat1.getMonth();
if (mon1 < 9) {
    mon1 = 0 + mon1 + 1.toString();
} else {
    mon1 = Number(mon1) + 1;
}
var day1 = Number(dat1.getDate());
if (day1 <= 9) {
    day1 = 0 + day1.toString();
} else {
    day1;
}
var today = year1 + mon1 + day1;
var doc = app.activeDocument;
var lay = doc.activeLayer;
var arr = new Array(0);
var sel = doc.selection;
var arr1 = new Array(sel.length);
if (sel.length == 0) {
    alert("请选取文本框再执行脚本");
} else {
    if (sel.length > 0) {
        snMaker();
    }
}

function snMaker() {
    var win = new Window("dialog", "流水号产生器", undefined);
    win.spacing = 5;
    var g11 = win.add("group");
    g11.orientation = "row";
    g11.alignChildren = "fill";
    g11.spacing = 42;
    var st11 = g11.add("statictext", undefined, "前辍字");
    var st12 = g11.add("statictext", undefined, "连结符");
    var st13 = g11.add("statictext", undefined, "* 起始值");
    var st14 = g11.add("statictext", undefined, "后辍字");
    var g12 = win.add("group");
    g12.orientation = "row";
    g12.alignment = "fill";
    var et11 = g12.add("edittext", [0, 0, 80, 25], today);
    var et12 = g12.add("edittext{justify:'center',text:'-'}", [0, 0, 30, 25]);
    var et13 = g12.add("edittext{justify:'right',text:'0000001'}", [0, 0, 125, 25]);
    var et14 = g12.add("edittext{justify:\"right\",text:\"CPC\"}", [0, 0, 40, 25]);
    var g13 = win.add("group");
    g13.orientation = "row";
    g13.alignment = "right";
    var bt11 = g13.add("button", [0, 0, 95, 25], "回复为默认值");
    var bt12 = g13.add("button", [0, 0, 95, 25], "以上全部清空");
    bt11.onClick = function() {
        et11.text = today;
        et12.text = "-";
        et13.text = "00001";
        et14.text = "CPC";
        et31.text = "";
        rb21.value = true;
        et21.text = 1;
    };
    bt12.onClick = function() {
        et11.text = "";
        et12.text = "";
        et13.text = "* 此栏必填 *";
        et14.text = "";
        st61.text = "";
        et31.text = "";
        et13.active = true;
    };
    var p1 = win.add("panel", undefined, "");
    p1.alignment = "fill";
    var g21 = win.add("group");
    g21.spacing = 3;
    var st21 = g21.add("statictext", undefined, "选项:");
    var rb21 = g21.add("radiobutton", [0, -5, 50, 10], "顺序");
    rb21.value = true;
    var rb22 = g21.add("radiobutton", [0, -5, 50, 10], "反序");
    var rb23 = g21.add("radiobutton", [0, -5, 50, 10], "乱序");
    var st22 = g21.add("statictext", undefined, "* 累进值:");
    var et21 = g21.add("edittext{justify:\"center\",text:1}", [0, 0, 35, 25]);
    var p2 = win.add("panel", undefined, "");
    p2.alignment = "fill";
    var g31 = win.add("group");
    g31.orientation = "row";
    g31.alignment = "right";
    var et31 = g31.add("edittext{justify:\"right\",text:\"\"}", [0, 0, 250, 25]);
    var btn31 = g31.add("button", [0, 0, 40, 25], "预览");
    btn31.onClick = function() {
        var len1 = et13.text.length;
        var len2 = et21.text.length;
        var len3 = Number(et21.text) * Number(sel.length).toString().length;

        function sortNum(a, b) {
            return b - a;
        }
        var arr1 = new Array(3);
        arr1[0] = len1;
        arr1[1] = len2;
        arr1[2] = len3;
        var arr2 = arr1.sort(sortNum);
        var lenB = arr2[0];
        if (et13.text == "" || et13.text == "* 此栏必填 *" || et21.text == "") {
            alert("起始值或累进值不能为空值");
            if (et21.text == "") {
                et21.text = "1";
            }
        } else {
            var et131 = "000000000000000" + Number(et13.text).slice(-lenB);
            var et132 = "000000000000000" + Number(et13.text) + Number(et21.text).slice(-lenB);
            var et133 = "000000000000000" + Number(et13.text) + (Number(et21.text) * (sel.length - 1)).slice(-lenB);
            var et134 = "000000000000000" + Number(et13.text) + (Number(et21.text) * (sel.length - 2)).slice(-lenB);
            if (rb21.value == true) {
                et31.enabled = true;
                et31.text = et11.text + et12.text + et131 + et14.text + " , " + et11.text + et12.text + et132 + et14.text + " , ...";
                st61.text = "共选取" + sel.length + "个文本框,由前依序递增值为" + et21.text;
            } else if (rb22.value == true) {
                et31.enabled = true;
                et31.text = et11.text + et12.text + et133 + et14.text + " , " + et11.text + et12.text + et134 + et14.text + " , ...";
                st61.text = "共选取" + sel.length + "个文本框,由后依序递减值为" + et21.text;
            } else {
                if (rb23.value == true) {
                    et31.enabled = false;
                    et31.text = "乱序不提供预览 !";
                    st61.text = "乱序不提供预览 !";
                }
            }
        }
    };
    var p4 = win.add("panel", undefined, "即时讯息及处理进度");
    p4.alignment = "fill";
    var g6 = p4.add("group");
    g6.orientation = "column";
    g6.alignment = "fill";
    var st61 = g6.add("statictext", [0, 0, 270, 25], "");
    var pgb = g6.add("progressbar", undefined, 0, undefined);
    pgb.alignment = "fill";
    st61.fillBrush = st61.graphics.newBrush(st61.graphics.BrushType.SOLID_COLOR, [1, 0, 0, 0.001]);
    st61.textPen = st61.graphics.newPen(st61.graphics.PenType.SOLID_COLOR, [0.9, 0, 0, 1], 1);
    st61.onDraw = customDraw;

    function customDraw() {
        with(this) {
            graphics.drawOSControl();
            graphics.rectPath(0, 0, size[0], size[1]);
            graphics.fillPath(fillBrush);
            if (text) {
                graphics.drawString(text, textPen, (size[0] - graphics.measureString(text, graphics.font, size[0])[0]) / 2, 3, graphics.font)
            }
        }
    }
    var p3 = win.add("panel", undefined, "重要备注");
    p3.alignment = "fill";
    var g4 = p3.add("group");
    g4.alignment = "fill";
    var st41 = g4.add("statictext", undefined, "● * 星号为必填的项目");
    var st42 = g4.add("statictext", undefined, "● 总值支持至16位数");
    var g41 = win.add("group");
    g41.orientation = "row";
    g41.alignment = "center";
    var btn42 = g41.add("button{justify:\"center\",text:\"点击生成流水号!\"}", undefined);
    btn42.fillBrush = btn42.graphics.newBrush(btn42.graphics.BrushType.SOLID_COLOR, [0, 0.5, 0, 1]);
    btn42.textPen = btn42.graphics.newPen(btn42.graphics.PenType.SOLID_COLOR, [1, 1, 1, 1], 1);
    btn42.onDraw = customDraw;

    function customDraw() {
        with(this) {
            graphics.drawOSControl();
            graphics.rectPath(0, 0, size[0], size[1]);
            graphics.fillPath(fillBrush);
            if (text) {
                graphics.drawString(text, textPen, (size[0] - graphics.measureString(text, graphics.font, size[0])[0]) / 2, 3, graphics.font)
            }
        }
    }
    var giSign = win.add("group");
    var cpcImg = "�PNG\r\n�\n\rIHDR(��d×=­�tEXtSoftwareAdobe ImageReadyqÉe<�ÄIDATxÚÌVËO�a���ÚÖ�Ù\n�ÑmÏCY¸\\l��yĤÜ�[IÆ�ÒxE��@à`D��!h4áe¤âÁ.^@\"¡
��8l�°õa#�Z�Å�åÛ¥�-���|Ùô{Ío~ó�ù\npÂ-+uâ^Û]�?�������G�Ç«§}Ï�Sö¶ã�;â~:;�çä�s6æ�g~�\t>f2�Ä�.ütW¯TsE�b¸°���DãÆ:�ý\"�ÞÚ\nãº�/\t��Îl�+++3¢�
Bð+�%pvv���7��¶Êª*(++SöíÆbð�÷�¾��X,Ö�{½i\t�iÏ4pgº\r�\"E��kû��ó¦¦ ïÃ�â��³X,¢»µõÈ�ÍÍÎÂG���£HD�&Ô74�L§[�áõÈ�E¬»i.;!­��÷Þ$p©¶ÙØÛ��±Ð­�Ot��¤¤¹�ÚZ@¦é~����ÍͺàÈ8��Û�0®»X6�¢ubZ¡p³PÛ<_ò�zoô@aßsLñÆ!ȦFøk2Ù�>�,°¸/ûûá\r²�hfN�©`w8´9L%���Áî�ý~å7��¯G\"�F5�6k¸B;,Zý0l��×\nVÝç��º.>é&ý)k�L&Ø��½WÓ�0��Y�ÒòrÐ[ãqM5\n����$É��㣣Ú�Ó¦@�=ÅæxSül�{hnÔÁ��À¥Ë��]:��dT0©ECÌD£QÈÏÏ×æH�¨³0Þïd÷Ï`AI�::Ò:Bö!m�±ý¬�Q���öÁKa\t¾-,(ãg$�ÿi/�8,�úÊz�cU­ÞÅ��Ô¡úU�îî��u¶¡i�^ô]ïÆ�(�||/nû,���Ç�õ:»C�P �� êP5é `¨¯õnËò¸æ�S�Ràp]D��8u��I�F��.�l�à¤è·\nÖ��\n¤¯Ç;É}�.m�û.�KËË�8�Á��óÊ�ÔB�··\t�ѯö1�ú�K£�©åT�Þli!\r\n8'�f�¥A­��£�¯�ìY[-ðÌÏ�pWjV��¢â��Êû�d�êìv0�1̰ίÛmR_�f½>�¯�µ�e�k4�\rµ©�ìÒ4È�\"÷ð��©µêz%æ(µ�ÞBÀ�Ç}SÑÇct>AÕKýRϨxh�½&3zO�¥l 7w�'&××�ã�ó���£¤�1GO�Ì�{@§X¼¸Þ�\t(�£&ßNO�5fj?$\r��ò ä]�ç³2\\âb}�W��4�!uÇ6��+¡��°/z�,N¼ý�` �²Ö�ñºÈIEND®B`�";
    var imgSign = giSign.add("image", undefined, cpcImg);
    var stSign = giSign.add("statictext", undefined, "CPC中文印刷社区");
    var stSign2 = win.add("statictext", undefined, "by calvin530126(#CJJS021scD)");
    btn42.onClick = function() {
        var len1 = et13.text.length;
        var len2 = et21.text.length;
        var len3 = Number(et21.text) * Number(sel.length).toString().length;

        function sortNum(a, b) {
            return b - a;
        }
        var arr1 = new Array(3);
        arr1[0] = len1;
        arr1[1] = len2;
        arr1[2] = len3;
        var arr2 = arr1.sort(sortNum);
        var lenB = arr2[0];
        if (et13.text == "" || et13.text == "* 此栏必填 *" || et21.text == "") {
            alert("起始值或累进值不能为空值,请重新执行脚本");
            if (et21.text == "") {
                et21.text = "1";
            }
        } else {
            for (var i = 0; i < sel.length; i += 1) {
                if (rb21.value == true) {
                    var et131 = "000000000000000" + Number(et13.text) + (Number(et21.text) * ((sel.length - 1) - i)).slice(-lenB);
                    sel[i].contents = et11.text + et12.text + et131 + et14.text;
                    pgb.value = (i / sel.length) * 100;
                    win.update();
                } else if (rb22.value == true) {
                    var et131 = "000000000000000" + Number(et13.text) + (Number(et21.text) * i).slice(-lenB);
                    sel[i].contents = et11.text + et12.text + et131 + et14.text;
                    pgb.value = (i / sel.length) * 100;
                    win.update();
                } else {
                    if (rb23.value == true) {
                        var et131 = "000000000000000" + Number(et13.text) + (Number(et21.text) * ((sel.length - 1) - i)).slice(-lenB);
                        sel[i].contents = et11.text + et12.text + et131 + et14.text;
                        arr.push(sel[i].contents);
                    }
                }
            }
            arr.sort(function() {
                return Math.random() > 0.5 ? -1 : 1;
            });
            if (rb23.value == true) {
                for (var k = 0; k < sel.length; k += 1) {
                    sel[k].contents = arr[k];
                    pgb.value = (k / sel.length) * 100;
                    win.update();
                }
            }
        }
        win.close();
    };
    win.center();
    win.show();
}


  合理的脚本代码可以有效的提高工作效率,减少重复劳动。

文章引用至 作者知了-联系方式1

文章引用至 作者知了-联系方式2

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,427评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,551评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,747评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,939评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,955评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,737评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,448评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,352评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,834评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,992评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,133评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,815评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,477评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,022评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,147评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,398评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,077评论 2 355

推荐阅读更多精彩内容