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