生成EAN13标准的条形码的ASP代码实例

2018-09-06 12:31

阅读:476

  复制代码 代码如下:
<title>条形码生成</title>
<%
Rem =================================================================
Rem = 函数:ean13
Rem = 说明:生成EAN13标准的条形码,有实例(ASP代码)
Rem = 版本:1.0.0
Rem = 作者:第七种直角(7th/semico)
Rem = Date:2005-08-08 11:57:06
Rem = QQ:11110785
Rem = QQ群:3773360
Rem = 适用:按照需要生成EAN13标准的条形码
Rem =================================================================
Function ean13(code,w,h)
Dim Guide,Dict,Lencode,Rencode,cStart,cMid,cEnd,Barcode,Lmethod
Guide = array(AAAAAA,AABABB,AABBAB,ABAABB,ABBAAB,ABBBAA,ABABAB,ABABBA,ABBABA)

  Set Dict = CreateObject(Scripting.Dictionary)
Dict.Add A, 0001101001100100100110111101010001101100010101111011101101101110001011
Dict.Add B, 0100111011001100110110100001001110101110010000101001000100010010010111

  Rencode = array(1110010,1100110,1101100,1000010,1011100,1001110,1010000,1000100,1001000,1110100)

  cStart=101
cMid=01010
cEnd=101

  if w<2 then w=2
if h<20 then h=20
cWidth=w条码单元宽度
cHeight=h条码高度

  检验条码是否符合标准
if len(code)<>13 then response.write 必须为13位!:response.end

  for i=1 to 12
if IsNumeric(mid(code,i,1)) then
if i mod 2 then
rsum=rsum+int(mid(code,i,1))
else
lsum=lsum+int(mid(code,i,1))
end if
else
response.write 必须为数字码!:response.end
end if
next
if 10-((lsum*3+rsum) mod 10) <> int(right(code,1)) then response.write 此条码错误!:response.end

  转换条码
Barcode=cStart
Lmethod=left(code,1)
if Lmethod=0 then Lmethod=1
for i=2 to 7
barcode = barcode & mid(Dict(Mid(Guide(Lmethod-1),i-1,1)),(7*mid(code,i,1)+1),7)
next
barcode=barcode & cMid
for i=8 to 13
barcode = barcode & Rencode(mid(code,i,1))
next
barcode=barcode & cEnd

  
fg=#000000条码前景色
bg=#ffffff条码背景色
response.write <div style=position:absolute;width:&cWidth*95+60&px; height:&cHeight+30&px; background:&bg&;>
绘制条码
for x=1 to len(barcode)
if x<5 or x>92 or (x>46 and x<51)then
sh=10
else
sh=0
end if

  if mid(barcode,x,1)=1 then
bColor=fg
else
bColor=bg
end if

  response.write <div style=position:absolute;left:&(x-1)*cWidth+30&px;top:5px;width:&cWidth&px;height:&cHeight+5+sh&px;background:&bColor&;></div>
next
加入可读数字标签
response.write <div style=position:absolute;left:16px;top:&cHeight+10&px;background:&bg&;color:&fg&;font:12px Verdana;>&left(code,1)&</div>
for x=1 to 6
response.write <div style=position:absolute;left:&(x*7+2)*cWidth+22&px;top:&cHeight+10&px;background:&bg&;color:&fg&;font:12px Verdana;>&mid(code,x+1,1)&</div>
response.write <div style=position:absolute;left:&(x*7+47)*cWidth+24&px;top:&cHeight+10&px;background:&bg&;color:&fg&;font:12px Verdana;>&mid(code,x+7,1)&</div>
next
response.write <div style=position:absolute; left:30px;top:&cHeight+25&px;width:&cWidth*95&px;height:10px;text-align:center;background:#ffffff;border:solid 1px #e5e5e5;font:9px verdana;>© 2007 by elbo </div>
response.write </div>
End Function

  %>
<p style=font:12px Verdana>
<span style=text-decoration: none>
<font color=#000000>适用:按照需要生成EAN13标准的条形码</font></span><br />
可以试验以下条码:<br />
9787900420206<br />
9787894954947
</p>
<br />
<form method=post action=ttt.asp>
<label>
<input type= name=bcode />
</label>
<input type=submit value=生成条码/>
</form>
<p align=center></p>

  <p align=center>

  <%
if request(bcode)<> then
call ean13(request(bcode),2,100)
else
call ean13(1234567890128,2,100)
end if

  %>
</br></a>版权所有 </p>


评论


亲,登录后才可以留言!