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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容