adobe illustrator条形码插件(三种)

生成文本代码

module.exports = function EANcode(文本_代码, type) {
    //校验
    var 字符集_代码 = Array(Array("0001101", "0100111", "1110010"), Array("0011001", "0110011", "1100110"), Array("0010011", "0011011", "1101100"), Array("0111101", "0100001", "1000010"), Array("0100011", "0011101", "1011100"), Array("0110001", "0111001", "1001110"), Array("0101111", "0000101", "1010000"), Array("0111011", "0010001", "1000100"), Array("0110111", "0001001", "1001000"), Array("0001011", "0010111", "1110100"));
    var 字符集_CODE代码 = Array("101001101101", "110100101011", "101100101011", "110110010101", "101001101011", "110100110101", "101100110101", "101001011011", "110100101101", "101100101101", "110101001011", "101101001011", "110110100101", "101011001011", "110101100101", "101101100101", "101010011011", "110101001101", "101101001101", "101011001101", "110101010011", "101101010011", "110110101001", "101011010011", "110101101001", "101101101001", "101010110011", "110101011001", "101101011001", "101011011001", "110010101011", "100110101011", "110011010101", "100101101011", "110010110101", "100110110101", "100101011011", "110010101101", "100110101101", "100100100101", "100100101001", "100101001001", "101001001001", "100101101101");
    var 字符集_CODE93代码 = Array("100010100", "101001000", "101000100", "101000010", "100101000", "100100100", "100100010", "101010000", "100010010", "100001010", "110101000", "110100100", "110100010", "110010100", "110010010", "110001010", "101101000", "101100100", "101100010", "100110100", "100011010", "101011000", "101001100", "101000110", "100101100", "100010110", "110110100", "110110010", "110101100", "110100110", "110010110", "110011010", "101101100", "101100110", "100110110", "100111010", "100101110", "111010100", "111010010", "111001010", "101101110", "101110110", "110101110", "100100110", "111011010", "111010110", "100110010", "101011110", "1010111101");
    var 字符集_CODE93扩展 = Array("二U", "一A", "一B", "一C", "一D", "一E", "一F", "一G", "一H", "一I", "一J", "一K", "一L", "一M", "一N", "一O", "一P", "一Q", "一R", "一S", "一T", "一U", "一V", "一W", "一X", "一Y", "一Z", "二A", "二B", "二C", "二D", "二E", " ", "三A", "三B", "三C", "$", "%", "三F", "三G", "三H", "三I", "三J", "+", "三L", "-", ".", "/", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "三Z", "二F", "二G", "二H", "二I", "二J", "二V", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "二K", "二L", "二M", "二N", "二O", "二W", "四A", "四B", "四C", "四D", "四E", "四F", "四G", "四H", "四I", "四J", "四K", "四L", "四M", "四N", "四O", "四P", "四Q", "四R", "四S", "四T", "四U", "四V", "四W", "四X", "四Y", "四Z", "二P", "二Q", "二R", "二S", "二T");
    var 字符集_CODE128代码 = Array("11011001100", "11001101100", "11001100110", "10010011000", "10010001100", "10001001100", "10011001000", "10011000100", "10001100100", "11001001000", "11001000100", "11000100100", "10110011100", "10011011100", "10011001110", "10111001100", "10011101100", "10011100110", "11001110010", "11001011100", "11001001110", "11011100100", "11001110100", "11101101110", "11101001100", "11100101100", "11100100110", "11101100100", "11100110100", "11100110010", "11011011000", "11011000110", "11000110110", "10100011000", "10001011000", "10001000110", "10110001000", "10001101000", "10001100010", "11010001000", "11000101000", "11000100010", "10110111000", "10110001110", "10001101110", "10111011000", "10111000110", "10001110110", "11101110110", "11010001110", "11000101110", "11011101000", "11011100010", "11011101110", "11101011000", "11101000110", "11100010110", "11101101000", "11101100010", "11100011010", "11101111010", "11001000010", "11110001010", "10100110000", "10100001100", "10010110000", "10010000110", "10000101100", "10000100110", "10110010000", "10110000100", "10011010000", "10011000010", "10000110100", "10000110010", "11000010010", "11001010000", "11110111010", "11000010100", "10001111010", "10100111100", "10010111100", "10010011110", "10111100100", "10011110100", "10011110010", "11110100100", "11110010100", "11110010010", "11011011110", "11011110110", "11110110110", "10101111000", "10100011110", "10001011110", "10111101000", "10111100010", "11110101000", "11110100010", "10111011110", "10111101110", "11101011110", "11110101110", "11010000100", "11010010000", "11010011100", "1100011101011");
    var 字符集_EAN13前缀 = Array("000000", "001011", "001101", "001110", "010011", "011001", "011100", "010101", "010110", "011010");
    var 字符集_UPCE前缀 = Array("111000", "110100", "110010", "110001", "101100", "100110", "100011", "101010", "101001", "100101");
    var 字符_CODE39 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%*";
    var 字符_CODE93 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%一二三四*";
    var 字符_CODE93扩展 = "空标正文传请收响退水换垂页回不启据设备控制接同输取介替溢件分记单 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~删";
    var 字符_CODE128 = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
    var 字符集_ITF前缀 = Array("00110", "10001", "01001", "11000", "00101", "10100", "01100", "00011", "10010", "01010");
    var 编辑框_高度 = {
        text: 30
    }
    var CODE128代码_类型 = function (文本_代码) {
        if (/[a-z]/.test(文本_代码)) {
            return "B";
        }
        if (文本_代码.length > 3) {
            if (/^[0-9]+$/.test(文本_代码)) {
                return "C";
            }
        }
        return "A";
    };
    switch (type) {
        case "EANcode13":
            //文本_代码 = "00000" + 文本_代码.substr(0, 7);
            // 文本_代码 = 文本_代码.substr(0, 12);
            // var 文本_奇数 = 0;
            // for (var i = 1; i < 13; i += 2) {
            //     文本_奇数 += parseInt(文本_代码.charAt(i - 1));
            // }
            // var 文本_偶数 = 0;
            // for (var i = 2; i < 13; i += 2) {
            //     文本_偶数 += parseInt(文本_代码.charAt(i - 1));
            // }
            // var 文本_总合 = 文本_奇数 + (文本_偶数 * 3);
            // 文本_总合 = String(文本_总合).charAt(String(文本_总合).length - 1);
            // 文本_总合 = 10 - 文本_总合;
            // if (文本_总合 == 10) {
            //     文本_总合 = 0;
            // }
            // 文本_代码 += String(文本_总合);
            //生成
            //文本_代码 = String(文本_代码.substr(5, 12));

            var EAN条码生成 = function (文本_代码) {
                var 文本_左侧 = 字符集_EAN13前缀[文本_代码.charAt(0)];

                if (文本_代码.length == 8) {
                    var 最小值 = 0;
                    var 中间值 = 4;
                    var 最大值 = 8;
                    var 长条_Y2大小 = String(Number(编辑框_高度.text) + 1.65);
                    var 短条_Y2大小 = 编辑框_高度.text;

                }
                if (文本_代码.length == 12) {
                    var 最小值 = 0;
                    var 中间值 = 6;
                    var 最大值 = 12;
                    var 长条_Y2大小 = String(Number(编辑框_高度.text) + 1.65);
                    var 短条_Y2大小 = 编辑框_高度.text;
                }
                if (文本_代码.length == 13) {
                    var 最小值 = 1;
                    var 中间值 = 7;
                    var 最大值 = 13;
                    var 长条_Y2大小 = String(Number(编辑框_高度.text) + 1.65);
                    var 短条_Y2大小 = 编辑框_高度.text;
                }
                var 代码_数据数组 = new Array();
                代码_数据数组[0] = "-0.33,1.32,0.33," + 长条_Y2大小;
                console.log(代码_数据数组[0]);
                代码_数据数组[1] = "-0.33,1.98,0.33," + 长条_Y2大小;
                for (var i = 最小值; i < 中间值; i++) {
                    var 代码_数据 = 字符集_代码[文本_代码.charAt(i)][文本_左侧.charAt(i - 1)];
                    if (文本_代码.length == 8 || 文本_代码.length == 12) {
                        var 代码_数据 = 字符集_代码[文本_代码.charAt(i)][0];
                        var 代码_加减大小 = 0;
                        if (文本_代码.charAt(i) == 1 || 文本_代码.charAt(i) == 2) {
                            代码_加减大小 = -0.025;
                        }
                        if (文本_代码.charAt(i) == 7 || 文本_代码.charAt(i) == 8) {
                            代码_加减大小 = 0.025;
                        }
                    } else {
                        var 代码_加减大小 = 0;
                        if (文本_代码.charAt(i) == 1 || 文本_代码.charAt(i) == 2) {
                            if (文本_左侧.charAt(i - 1) == "0") {
                                代码_加减大小 = -0.025;
                            } else {
                                代码_加减大小 = 0.025;
                            }
                        }
                        if (文本_代码.charAt(i) == 7 || 文本_代码.charAt(i) == 8) {
                            if (文本_左侧.charAt(i - 1) == "0") {
                                代码_加减大小 = 0.025;
                            } else {
                                代码_加减大小 = -0.025;
                            }
                        }
                    }
                    var 代码_分割数组 = 代码_数据.split("0");
                    var 代码_大小数组 = new Array();
                    for (var a = 0; a < 代码_分割数组.length; a += 1) {
                        if (代码_分割数组[a] != "") {
                            代码_大小数组.push(代码_分割数组[a]);
                        }
                    }
                    var 代码_X1位置 = 代码_数据.indexOf(代码_大小数组[0], 0);
                    var 代码_X1大小 = (0.33 * 代码_X1位置) - 代码_加减大小;
                    var 代码_X2大小 = (0.33 * 代码_大小数组[0].length) + 代码_加减大小;
                    var 代码_X3位置 = 代码_数据.indexOf(代码_大小数组[1], 代码_X1位置 + 代码_大小数组[0].length);
                    var 代码_X3大小 = (0.33 * 代码_X3位置) - 代码_加减大小;
                    var 代码_X4大小 = (0.33 * 代码_大小数组[1].length) + 代码_加减大小;
                    var 代码_Y1大小 = -0.33;
                    var 代码_Y2大小 = 短条_Y2大小;
                    if (文本_代码.length == 12 && i < 1) {
                        var 代码_Y2大小 = 长条_Y2大小;
                    }
                    代码_数据数组.push(代码_Y1大小 + "," + 代码_X1大小 + "," + 代码_X2大小 + "," + 代码_Y2大小);
                    代码_数据数组.push(代码_Y1大小 + "," + 代码_X3大小 + "," + 代码_X4大小 + "," + 代码_Y2大小);
                }
                代码_数据数组.push("-0.33,0.33,0.33," + 长条_Y2大小);
                代码_数据数组.push("-0.33,0.99,0.33," + 长条_Y2大小);
                for (var i = 中间值; i < 最大值; i++) {
                    var 代码_数据 = 字符集_代码[文本_代码.charAt(i)][2];
                    var 代码_加减大小 = 0;
                    if (文本_代码.charAt(i) == 1 || 文本_代码.charAt(i) == 2) {
                        代码_加减大小 = 0.025;
                    }
                    if (文本_代码.charAt(i) == 7 || 文本_代码.charAt(i) == 8) {
                        代码_加减大小 = -0.025;
                    }
                    var 代码_分割数组 = 代码_数据.split("0");
                    var 代码_大小数组 = new Array();
                    for (var a = 0; a < 代码_分割数组.length; a += 1) {
                        if (代码_分割数组[a] != "") {
                            代码_大小数组.push(代码_分割数组[a]);
                        }
                    }
                    var 代码_X1位置 = 代码_数据.indexOf(代码_大小数组[0], 0);
                    var 代码_X1大小 = 0.33 * 代码_X1位置;
                    var 代码_X2大小 = (0.33 * 代码_大小数组[0].length) + 代码_加减大小;
                    var 代码_X3位置 = 代码_数据.indexOf(代码_大小数组[1], 代码_X1位置 + 代码_大小数组[0].length);
                    var 代码_X3大小 = 0.33 * 代码_X3位置;
                    var 代码_X4大小 = (0.33 * 代码_大小数组[1].length) + 代码_加减大小;
                    var 代码_Y1大小 = -0.33;
                    var 代码_Y2大小 = 短条_Y2大小;
                    if (文本_代码.length == 12 && i > 10) {
                        var 代码_Y2大小 = 长条_Y2大小;
                    } 代码_数据数组.push(代码_Y1大小 + "," + 代码_X1大小 + "," + 代码_X2大小 + "," + 代码_Y2大小);
                    代码_数据数组.push(代码_Y1大小 + "," + 代码_X3大小 + "," + 代码_X4大小 + "," + 代码_Y2大小);
                }
                代码_数据数组.push("-0.33,0,0.33," + 长条_Y2大小);
                代码_数据数组.push("-0.33,0.66,0.33," + 长条_Y2大小);

                return 代码_数据数组;
            };

            return EAN条码生成(文本_代码);
        case "EAN128":
            var EAN128条码生成 = function (文本_代码) {
                var 文本_原代码 = 文本_代码;
                var 文本_数字 = 文本_代码.match(/\d+/ig);
                if (文本_数字 != null) {
                    var 文本_处理数组 = new Array();
                    for (var a = 0; a < 文本_数字.length; a += 1) {
                        if (文本_数字[a].length > 3) {
                            if ((文本_数字[a].length % 2) == 0) {
                                文本_处理数组.push(文本_数字[a]);
                            } else {
                                var 文本_长度 = 文本_数字[a].length - 1;
                                if (a == 0) {
                                    var 文本_临时 = 文本_数字[a].substr(0, 文本_长度);
                                } else {
                                    var 文本_临时 = 文本_数字[a].substr(1, 文本_长度);
                                } 文本_处理数组.push(文本_临时);
                            }
                        }
                    }
                    if (文本_处理数组.length > 0) {
                        for (var a = 0; a < 文本_处理数组.length; a += 1) {
                            var 文本_替换 = 文本_处理数组[a]; 文本_代码 = 文本_代码.replace(文本_替换, ",");
                        }
                        for (var a = 0; a < 文本_处理数组.length; a += 1) {
                            var 文本_替换 = 文本_处理数组[a]; 文本_代码 = 文本_代码.replace(",", "。" + 文本_替换 + "。");
                        }
                        if (文本_代码.substr(0, 1) == "。") {
                            文本_代码 = 文本_代码.substr(1);
                        }
                        var 文本_长度 = 文本_代码.length - 1;
                        if (文本_代码.substr(文本_长度, 1) == "。") {
                            文本_代码 = 文本_代码.substr(0, 文本_长度);
                        }
                    }
                    var 文本_临时 = 文本_代码.split("。");
                    if (文本_处理数组.length == 1 && 文本_处理数组[0].length < 5 && 文本_临时.length > 2) {
                        文本_代码 = 文本_原代码;
                    }
                }
                var 文本_临时 = 文本_代码.split("。"); 文本_代码 = 文本_临时[0];
                var 代码_类型 = CODE128代码_类型(文本_代码);
                var 文本_计次 = 1;
                var 文本_总合 = 0;
                var 代码_数据 = "";
                if (代码_类型 == "A") {
                    代码_数据 = 字符集_CODE128代码[103] + 字符集_CODE128代码[102]; 文本_总合 = 205;
                    for (var i = 0; i < 文本_代码.length; i += 1) {
                        var 文本_位置 = 字符_CODE128.indexOf(文本_代码.charAt(i)); 代码_数据 += 字符集_CODE128代码[文本_位置]; 文本_计次 += 1; 文本_总合 += (文本_位置 * 文本_计次);
                    }
                }
                if (代码_类型 == "B") {
                    代码_数据 = 字符集_CODE128代码[104] + 字符集_CODE128代码[102]; 文本_总合 = 206;
                    for (var i = 0; i < 文本_代码.length; i += 1) {
                        var 文本_位置 = 字符_CODE128.indexOf(文本_代码.charAt(i)); 代码_数据 += 字符集_CODE128代码[文本_位置]; 文本_计次 += 1; 文本_总合 += (文本_位置 * 文本_计次);
                    }
                }
                if (代码_类型 == "C") {
                    代码_数据 = 字符集_CODE128代码[105] + 字符集_CODE128代码[102]; 文本_总合 = 207;
                    for (var i = 0; i < 文本_代码.length / 2; i += 1) {
                        var 文本_位置 = Number(文本_代码.substr(i * 2, 2)); 代码_数据 += 字符集_CODE128代码[文本_位置]; 文本_计次 += 1; 文本_总合 += (文本_位置 * 文本_计次);
                    }
                }
                if (文本_临时.length > 0) {
                    for (var a = 1; a < 文本_临时.length; a += 1) {
                        var 代码_类型 = CODE128代码_类型(文本_临时[a]); 文本_代码 = 文本_临时[a];
                        if (代码_类型 == "A") {
                            代码_数据 += 字符集_CODE128代码[101]; 文本_计次 += 1; 文本_总合 += (101 * 文本_计次);
                            for (var i = 0; i < 文本_代码.length; i += 1) {
                                var 文本_位置 = 字符_CODE128.indexOf(文本_代码.charAt(i)); 代码_数据 += 字符集_CODE128代码[文本_位置]; 文本_计次 += 1; 文本_总合 += (文本_位置 * 文本_计次);
                            }
                        }
                        if (代码_类型 == "B") {
                            代码_数据 += 字符集_CODE128代码[100]; 文本_计次 += 1; 文本_总合 += (100 * 文本_计次);
                            for (var i = 0; i < 文本_代码.length; i += 1) {
                                var 文本_位置 = 字符_CODE128.indexOf(文本_代码.charAt(i)); 代码_数据 += 字符集_CODE128代码[文本_位置]; 文本_计次 += 1; 文本_总合 += (文本_位置 * 文本_计次);
                            }
                        }
                        if (代码_类型 == "C") {
                            代码_数据 += 字符集_CODE128代码[99]; 文本_计次 += 1; 文本_总合 += (99 * 文本_计次);
                            for (var i = 0; i < 文本_代码.length / 2; i += 1) {
                                var 文本_位置 = Number(文本_代码.substr(i * 2, 2)); 
                                代码_数据 += 字符集_CODE128代码[文本_位置]; 文本_计次 += 1; 
                                文本_总合 += (文本_位置 * 文本_计次);
                            }
                        }
                    }
                } 文本_总合 = 文本_总合 % 103; 代码_数据 += 字符集_CODE128代码[文本_总合] + 字符集_CODE128代码[106];
                return 代码_数据;
            };
            return EAN128条码生成(文本_代码)
        case "CODE39":
            console.log("9859");
            //编辑框_高度.text = 条码_原高度 + "mm";
            //var 条码_高度 = 条码_原高度 / 条码_比例; 
            //编辑框_高度.text = 条码_高度;
            //编辑框_代码.text = 文本_代码.substr(1, 文本_代码.length - 2);
            var 代码_数据 = "";
            for (var i = 0; i < 文本_代码.length; i += 1) {
                var 文本_位置 = 字符_CODE39.indexOf(文本_代码.charAt(i));
                if (文本_位置 != -1) {
                    if (i > 0) {
                        代码_数据 += "0";
                    }
                    代码_数据 += 字符集_CODE代码[文本_位置];
                }
            }
            console.log(代码_数据);
            return 代码_数据
    }
}

//生成条形码
function barcode(options) {
	//获取指定的文本框
	var target = getTargetTag("id", options.id);
	target && target.remove()
	var 编辑框_高度 = {
		text: 30
	}
	var 当前文件 = activeDocument;
	新白色 = new CMYKColor();
	新白色.cyan = 0;
	新白色.magenta = 0;
	新白色.yellow = 0;
	新白色.black = 0;
	var mm = 2.834645669;
	新黑色 = new CMYKColor();
	新黑色.cyan = 0;
	新黑色.magenta = 0;
	新黑色.yellow = 0;
	新黑色.black = 100;
	var 文本_宽度比例增加 = 0
	var 文本_宽度比例 = 3
	var 条码_比例 = 1
	//传进来的参数
	var 文本_代码 = options.barCode
	var 代码_数据数组 = options.numcode
	var 条码_高度 = 编辑框_高度.text
	var heights=options.height
	var withs = options.width
	var position = options.position
	var font_size = options.fontSize
	var font_type = options.textFont 
	var 离码距离=options.code_distance
	var titer_code=options.titer_code?options.titer_code:''
	var foot_code =options.foot_code?options.foot_code:''
	
	switch (options.codeType) {
		case "EANcode13":
			if (文本_代码.length == 8) {
				var 白底_X2大小 = 26.73;
				var 白底_Y2大小 = String(Number(编辑框_高度.text) + 3.79);
				var 中间值 = 11;
				var 调整最小值 = 0.33;
				var 调整最大值 = 0.99;
			}
			if (文本_代码.length == 12) {
				var 白底_X2大小 = 37.29;
				var 白底_Y2大小 = String(Number(编辑框_高度.text) + 3.79);
				var 中间值 = 15;
				var 调整最小值 = 0.99;
				var 调整最大值 = 1.65;
			}
			if (文本_代码.length == 13) {
				var 白底_X2大小 = 37.29;
				var 白底_Y2大小 = String(Number(编辑框_高度.text) + 3.79);
				var 中间值 = 15;
				var 调整最小值 = 1.65;
				var 调整最大值 = 2.31;
			}
			var 新建_群组 = 当前文件.groupItems.add();
			var 画矩形 = 新建_群组.pathItems.rectangle(0, 0, 白底_X2大小 * mm, 白底_Y2大小 * mm);
			画矩形.fillColor = 新白色;
			画矩形.strokeColor = NoColor;
			
			for (var a = 0; a < 代码_数据数组.length; a += 1) {
				var 代码_分割数组 = 代码_数据数组[a].split(",");
				var 代码_Y1大小 = 代码_分割数组[0];
				if ((a % 2) == 0) {
					var 代码_X1位置 = (a / 2) * 2.31;
				}
				if (a > 中间值) {
					var 代码_X1大小 = Number(代码_分割数组[1]) + 代码_X1位置 + 调整最小值;
				} else {
					var 代码_X1大小 = Number(代码_分割数组[1]) + 代码_X1位置 + 调整最大值;
				}
				var 代码_X2大小 = 代码_分割数组[2];
				var 代码_Y2大小 = 代码_分割数组[3];
				var 第一位 = 新建_群组.pathItems.rectangle(代码_Y1大小 * mm, 代码_X1大小 * mm, 代码_X2大小 * mm, 代码_Y2大小 * mm);
				第一位.fillColor = 新黑色;
				第一位.strokeColor = NoColor;
			}
			var 新建_群组 = 当前文件.groupItems[0];
			//编辑框_代码.text = 文本_代码;	
			文本_代码=titer_code+文本_代码+foot_code
			for (var i = 0; i < 文本_代码.length; i += 1) {
				var 代码_位置 = 0;
				var 代码_Y移动 = 条码_高度 - 0.068;
				文字_新建 = 新建_群组.textFrames.add();
				文字_新建.contents = 文本_代码.charAt(i);
				文字_新建.textRange.characterAttributes.textFont = textFonts.getByName(font_type);
				文字_新建.textRange.characterAttributes.size = font_size;
				文字_新建.left = 0;
				文字_新建.top = 0;
				if (i <= 3) {
					var 代码_位置 = (6.54803149606299 * (i + 1)) + 2.80629921259843;
				}
				if (i > 3) {
					var 代码_位置 = (6.54803149606299 * (i + 1)) + 7.48346456692913;
				}
				var 代码_减去 = (文字_新建.width - 6.54803149606299) / 2;
				文字_新建.translate(代码_位置 , -((代码_Y移动 * 72) / 25.4)-离码距离);
			}
			//编辑框_高度.text = 条码_原高度 + "mm";
			
			activeDocument.groupItems[0].width = withs;
			activeDocument.groupItems[0].height = heights
			activeDocument.groupItems[0].position = position
			break;
		case "EAN128":
			
			var 代码_分割数组 = 代码_数据数组.split("0");
			var 代码_大小数组 = new Array();
			for (var a = 0; a < 代码_分割数组.length; a += 1) {
				if (代码_分割数组[a] != "") {
					代码_大小数组.push(代码_分割数组[a]);
				}
			}

			var 矩形_X2大小 = (0.33 * 代码_数据数组.length) + 6.6;
			var 矩形_Y2大小 = String(Number(编辑框_高度.text) + 4.99);
			var 代码_X1位置 = 0;
			var 代码_X2位置 = 0;
			var 代码_X3位置 = 0;
			var 新建_群组 = 当前文件.groupItems.add();

			// if (复选框_外框.value == true) {
			// 	矩形_Y2大小 = Number(编辑框_高度.text) + 6.31;
			// 	var 画矩形 = 新建_群组.pathItems.rectangle(0, 0, 矩形_X2大小 * mm, 矩形_Y2大小 * mm); 画矩形.fillColor = 新白色; 画矩形.strokeColor = NoColor;
			// 	var 画矩形上 = 新建_群组.pathItems.rectangle(-0.33 * mm, 3.3 * mm, 0.33 * 代码_数据数组.length * mm, 0.66 * mm); 画矩形上.fillColor = 新黑色; 画矩形上.strokeColor = NoColor;
			// 	var 画矩形下 = 新建_群组.pathItems.rectangle(-(条码_高度 + 0.99) * mm, 3.3 * mm, 0.33 * 代码_数据数组.length * mm, 0.66 * mm); 画矩形下.fillColor = 新黑色; 画矩形下.strokeColor = NoColor;
			// 	var 代码_Y1大小 = -0.99;
			// 	var 代码_Y移动 = Number(编辑框_高度.text) + 1.785;
			// } else {}

			var 画矩形 = 新建_群组.pathItems.rectangle(0, 0, 矩形_X2大小 * mm, 矩形_Y2大小 * mm);
			画矩形.fillColor = 新白色; 画矩形.strokeColor = NoColor;

			var 代码_Y1大小 = -0.33;
			var 代码_Y移动 = Number(编辑框_高度.text) + 0.465;

			for (var i = 0; i < 代码_大小数组.length; i += 1) {
				var 代码_X1位置 = 代码_数据数组.indexOf(代码_大小数组[i], 代码_X1位置);
				代码_X2位置 = 代码_X1位置 + 代码_大小数组[i].length;
				代码_X3位置 = 代码_数据数组.indexOf(代码_大小数组[i + 1], 代码_X2位置);
				代码_X3位置 -= 代码_X2位置;
				var 代码_X1大小 = 0.33 * 代码_X1位置;
				var 代码_X2大小 = 0.33 * 代码_大小数组[i].length;
				var 代码_Y2大小 = 编辑框_高度.text; 代码_X1大小 += 3.3; 代码_X1位置 += 代码_大小数组[i].length;
				var 第一位 = 新建_群组.pathItems.rectangle(代码_Y1大小 * mm, 代码_X1大小 * mm, 代码_X2大小 * mm, 代码_Y2大小 * mm);
				第一位.fillColor = 新黑色;
				第一位.strokeColor = NoColor;
			}
			文本_代码=titer_code+文本_代码+foot_code
			for (var i = 0; i < 文本_代码.length; i += 1) {
				var 代码_位置 = ((5.596 + (2.31 * (i - 1))) * 72) / 25.4;
				文字_新建 = 新建_群组.textFrames.add();
				文字_新建.contents = 文本_代码.charAt(i);
				文字_新建.textRange.characterAttributes.size = font_size;
				文字_新建.textRange.characterAttributes.textFont = textFonts.getByName(font_type); 
				文字_新建.left = 0;
				文字_新建.top = 0;
				文字_新建.translate(代码_位置, -((代码_Y移动 * 72) / 25.4)-离码距离);
			}
		
			activeDocument.groupItems[0].width = withs;
			activeDocument.groupItems[0].height = heights
			activeDocument.groupItems[0].position = position
			break;
		case "CODE39":
			文本_代码 = "*" + 文本_代码 + "*".toUpperCase();
			var 代码_分割数组 = 代码_数据数组.split("0");
			var 代码_大小数组 = new Array();
			for (var a = 0; a < 代码_分割数组.length; a += 1) {
				if (代码_分割数组[a] != "") {
					代码_大小数组.push(代码_分割数组[a]);
				}
			}
			var 矩形_X2大小 = (7.62 * 代码_数据数组.length) + 12.192;
			var 矩形_Y2大小 = 36.79;
			var 代码_X1位置 = 0;
			var 代码_X1增加 = 0;
			var 代码_X2位置 = 0;
			var 代码_X3位置 = 0;
			var 新建_群组 = 当前文件.groupItems.add();
			var 画矩形 = 新建_群组.pathItems.rectangle(-(0.508 * mm), 6.35 * mm, 10 * mm, 10 * mm);
			画矩形.fillColor = 新白色;
			画矩形.strokeColor = NoColor;
			// if (复选框_外框.value == true) {
			//     var 画矩形上 = 新建_群组.pathItems.rectangle(-0.508 * mm, 6.35 * mm, 0.508 * mm, 1.016 * mm); 
			//     画矩形上.fillColor = 新黑色; 画矩形上.strokeColor = NoColor;
			//     var 画矩形下 = 新建_群组.pathItems.rectangle(-(条码_高度 + 1.524) * mm, 6.35 * mm, 0.508 * mm, 1.016 * mm); 
			//     画矩形下.fillColor = 新黑色; 画矩形下.strokeColor = NoColor;
			//     var 代码_Y1大小 = -1.524;
			//     var 代码_Y移动 = 条码_高度 + 2.911;
			// } else {
			var 代码_Y1大小 = -0.508;
			var 代码_Y移动 = 条码_高度 + 0.879;
			// }
			if (文本_宽度比例 == "2" || 文本_宽度比例 == "2.0") {
				文本_宽度比例 = 0.508;
				文本_宽度比例增加 = 0;
			}
			if (文本_宽度比例 == "2.5") {
				文本_宽度比例 = 0.635;
				文本_宽度比例增加 = 0.254;
			}
			if (文本_宽度比例 == "3" || 文本_宽度比例 == "3.0") {
				文本_宽度比例 = 0.762;
				文本_宽度比例增加 = 0.508;
			}

			for (var i = 0; i < 代码_大小数组.length; i += 1) {
				var 代码_X1位置 = 代码_数据数组.indexOf(代码_大小数组[i], 代码_X1位置);
				代码_X2位置 = 代码_X1位置 + 代码_大小数组[i].length;
				代码_X3位置 = 代码_数据数组.indexOf(代码_大小数组[i + 1], 代码_X2位置);
				代码_X3位置 -= 代码_X2位置;

				if (代码_大小数组[i].length > 1) {
					var 代码_X1大小 = (0.508 * 代码_X1位置) + 代码_X1增加;
					var 代码_X2大小 = 文本_宽度比例 * 代码_大小数组[i].length;
					代码_X1增加 += 文本_宽度比例增加;
				} else {
					var 代码_X1大小 = (0.508 * 代码_X1位置) + 代码_X1增加;
					var 代码_X2大小 = 0.508 * 代码_大小数组[i].length;

				}
				if (代码_X3位置 > 1) {
					代码_X1增加 += 文本_宽度比例增加;
				}

				var 代码_Y2大小 = 条码_高度;
				代码_X1大小 += 6.35;
				代码_X1位置 += 代码_大小数组[i].length;
				var 第一位 = 新建_群组.pathItems.rectangle(代码_Y1大小 * mm, 代码_X1大小 * mm, 代码_X2大小 * mm, 代码_Y2大小 * mm);
				第一位.fillColor = 新黑色;
				第一位.strokeColor = NoColor;
			}
			文本_代码=titer_code+文本_代码+foot_code
			for (var i = 1; i < 文本_代码.length - 1; i += 1) {
				var 代码_位置 = ((7.31 + (3.56 * (i - 1))) * 72) / 25.4;
				文字_新建 = 新建_群组.textFrames.add();
				文字_新建.contents = 文本_代码.charAt(i);
				文字_新建.textRange.characterAttributes.size = font_size;
				文字_新建.textRange.characterAttributes.textFont = textFonts.getByName(font_type);
				文字_新建.left = 0;
				文字_新建.top = 0;

				文字_新建.translate(代码_位置 * 2, -((代码_Y移动 * 72) / 25.4)-离码距离);
			}
			画矩形_长度 = 新建_群组.width;
			画矩形.width = 新建_群组.width + (12.7 * mm);
			// if (复选框_外框.value == true) {
			// 	画矩形.height = (条码_高度 + 6.356) * mm; 画矩形.left = 0; 画矩形.top = 0;
			// 	画矩形上.width = 画矩形_长度;
			// 	画矩形下.width = 画矩形_长度;
			// } else {
			画矩形.height = (条码_高度 + 4.324) * mm;
			画矩形.left = 0;
			画矩形.top = 0;
			// } 编辑框_高度.text = 条码_原高度 + "mm";
			activeDocument.groupItems[0].width = withs;
			activeDocument.groupItems[0].height = heights
			activeDocument.groupItems[0].position = position
			break;

	}
	return activeDocument.groupItems[0]
}

//调用

 const data = {
                    barCode,
                    numcode: EANcode(barCode, codeType),
                    codeType,
                    foot_code,
                    titer_code,
                    code_distance,
                    textFont,
                    height,
                    width,
                    position,
                    fontSize,
                    id
                }

                console.log(data);
                await XMPBridge.barcode(data)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
英文版的工具名是“Barcode Toolbox”,然后点击“Hide Barcode”。如下图: 之后在工作区会出现如下图的“Barcode Toolbox”工具面板: 通过条形码测量工具可对已创建的条形码进行校验,其校验功能也可以校验由其它条形码工具所生成的条形码。在工具箱上选择条形码测量工具,横向划过已生成的条形码,在条形码调板的代码字段内即可产生该条形码的构成数值。测量前一定要确保条码是群组后的,测量时测量工具一定要把条码拉完。 在条码工具面板右方还有一个下拉菜单: 下拉菜单内容如下: 下拉菜单的具体含意是: -添加结束区域指示符 -添加上下端鉴别条 -添加左右端鉴别条 -使用OCRB作为缺省字体未完待续 -判读字符居中对齐 -判读字符的高度缩放百分比 PS:一般情况下这些选项保持默认便可,无需更改。 条码制作过程:以 EAN 13 为例 在code栏里输入正确的13位条码号(最后的校验位可不必输入,会自动生成,若你发现自动生成的未位与资料来符,请及时核对你的资料的正确性),输入时你可以不用分隔符隔开,输入完后会自动隔开的。 在code witdth里输入合适的条宽缩小量。条宽缩小量因不同的印刷而有所不同。胶印一般为0.02。凹印一般为0.03。柔印可以为0.05.还有一点要注意:这里的设置要在条码放缩前进行。数值越大出来的条码线条越宽。 在Magnification里输入你想设置的条码放缩的比率。由于印刷的精度,规定条码的放缩比为0.8-2.0之间。最好在0.9-1.2之间。数值越大出来的条码整体越宽。 在bar heigh里输入你想要的条码高度。标准规定EAN-13条码的高度为25mm。所以一般都输入25。你可以将条码截断。一般通过蒙板实现。若要变短,最好小于原条码的1/4,最大不可大于原条码的1/3。数值越大出来的条码整体越高。 参数设置好后点击AI工具栏的条码画笔工具(如下图)在工作区点击便会出现条码。 自我经验:条码数字正常应该是 OCR-B 10 PITCH BT 字体,如若不是请打散条码群组后更改。至于条码图形的高低宽窄可自由等比例调整以适合你的设计要求。最后一定试打一张条码,用条码扫描仪扫描测试成不成功(打开WORD软件,扫描仪对准条码扫出的数字核对一下资料便可
Adobe Illustrator(简称AI)是一款由Adobe Systems开发的矢量图形编辑软件。它具有强大的绘图功能和广泛的应用领域。 Adobe Illustrator以其出色的能力和功能广泛应用于设计、插图、平面设计、印刷、标志设计等领域。该软件可以创建高质量的矢量图形,使图形保持清晰锐利,并可无限缩放而不失真。相比之下,像素图像在放大时会失去清晰度。因此,Adobe Illustrator在产品设计、图标设计等需要进行缩放的项目中非常有用。 除此之外,Adobe Illustrator还具有丰富的绘图工具和特效。用户可以使用各种形状和路径工具进行绘图,并应用各种颜色、填充和渐变效果来增加图形的视觉吸引力。此外,其支持平面设计中常用的图层功能,使得编辑和修改图形变得更加轻松和直观。 Adobe Illustrator还提供了一系列的插件、脚本和扩展,使用户可以利用第三方工具和资源来增强软件的功能。通过这些插件,用户可以更加方便地处理矢量图形,如自动化工作流程、创建特定效果等。 总的来说,Adobe Illustrator是一款功能强大的矢量图形编辑软件,被广泛应用于设计和平面设计领域。它的独特优势在于矢量图形的高清晰度和无限缩放能力,以及丰富的绘图工具和特效。无论是设计师还是平面设计师,都可以通过使用Adobe Illustrator来创建出色的矢量图形。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值