html制作upc 12,原创ai脚本-UPC-A 12位条码生成

改造成功,发代码,求测试

var test=prompt ('请输入UPC/A条码前11位数字', '', undefined)

//定义UPC/A条码的三个字符子集,每行分别为0~9,每列为A,B,C

var encoding=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") );

//根据第一位数选择第2-7位数所用的字符集

var first=Array ("000000","001011","001101","001110","010011","011001","011100","010101","010110","011010");

test=test.substr(0,11) //取第1位至第11位

test="0"+test; //在前面加0

//计算奇数位总和

ji=0;

for (i=1;i<13;i+=2){ji+=parseInt(test.charAt(i-1))}

//计算偶数位总和

ou=0;

for (i=2;i<13;i+=2){ou+=parseInt(test.charAt(i-1))}

//将奇数位和与偶数位和的三倍相加

end=ji+ou*3;

//取结果的个位数

end=(String(end).charAt(String(end).length-1));

//用10减去个位数,得到校验码数字

end=10-end;

if (end==10){end=0} //如果个位数为0则校验码也为0

test += String(end); //加上第13位的校验码

//alert(test); //得到完整的13位数字

seq = first[ test.charAt(0) ];//根据第1位数选用左侧数据区的字符集

var ean = "101"; //开始

//左侧数据区编码

for(var i=1; i<7; i++){

ean +=encoding[ test.charAt(i)][seq.charAt(i-1)] ;

}

ean+= "01010"; //中间

//右侧数据区编码

for(var i=7; i<13; i++){

ean += encoding[test.charAt(i)][2];

}

ean += "101"; //结束

//alert (ean); //得到条码二进制

//根据条码二进制画出条码

doc = activeDocument;

blackColor = new CMYKColor();

blackColor.cyan = 0;

blackColor.magenta = 0;

blackColor.yellow = 0;

blackColor.black = 100;

var barcode1 = doc.groupItems.add();

x=0;

y=0;

l=0.93544;//每一条线宽度

h=69.5;//分隔线高度

h2=64.8;//条码线高度

for (i=0;i

if (ean.charAt(i)=="1"){

if (i<3){hh=h}

if (i>2 && i<45){hh=h2}

if (i>44 && i<50){hh=h}

if (i>49 && i<92){hh=h2}

if (i>91){hh=h}

var rect = barcode1.pathItems.rectangle( y+h, x+i*l, l, hh );

rect.fillColor=blackColor;

rect.strokeColor= NoColor;

}}

//加上条码数字

var t2 = barcode1.textFrames.add();

t2.contents = test.substr(1,1)+" "+test.substr(2,5)+" "+test.substr(7,5)+" "+test.substr(12,1)

t2.textRange.characterAttributes.size=12.64;

ocrfont=0;

//在字体中寻找“OCR-B 10 BT”这个字体

for (i=0;i

if (String(app.textFonts[i].family)=="OCR-B 10 BT"){ocrfont=i;break;}

}

t2.textRange.characterAttributes.textFont= app.textFonts[ocrfont]; //设置字体

//设置条码数字位置

t2.left = x-9;

t2.top = y+6;

t2.textRange.kerning=-25; //设置字距

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值