📄 eancreate.txt
字号:
EAN条码字体的解码算法
经常发现用PB的开发人员在问为什么用EAN的字体打出来的条码扫描枪无法扫描
其实受EAN的编码规格的限制,EAN的字体是不能直接使用的,EAN13的编码规格就不
多说了,下面给出两个函数可把条码转换为EAN字体可识别的字符串(分别对应EAN13和EAN8两种编码)
对应的字体与PB的DEMO可到下面的地址下载:
http://kivens.nease.net/ean.rar
function string f_GetEAN13FontStr (string as_ean13code);//ENA13
//by kivens.jiang(kivens@china.com) 2005-03-01
string ls_LeftBlankStr="#$%&'()*+,"
string ls_LeftCode[9]={'112122','112212','112221','121122','122112','122211','121212','121221','122121'}
string ls_LeftEanStr='0123456789ABCDEFGHIJ'
string ls_RightEanStr='abcdefghij'
string ls_SplitStr='!'
string ls_MidStr='-'
if len(as_EAN13Code)<>13 then return ''
Integer i,li_index,li_LeftCode,li_Temp_Code
string ls_Result
li_LeftCode=Integer(Left(as_EAN13Code,1))
ls_Result=Mid(ls_LeftBlankStr,li_LeftCode + 1,1)
for i=2 to 13
li_Temp_Code=Integer(mid(as_EAN13Code,i,1)) + 1
if i>7 then
ls_Result=ls_Result+mid(ls_RightEanStr,li_Temp_Code,1)
else
ls_Result=ls_Result+mid(ls_LeftEanStr,li_Temp_Code + (Integer(Mid(ls_LeftCode[li_LeftCode],i - 1,1)) - 1)*10,1)
end if
next
ls_Result=Left(ls_Result,1)+ls_SplitStr+Mid(ls_Result,2,6)+ls_MidStr+Right(ls_Result,6)+ls_SplitStr
return ls_Result
end function
function string f_GetEAN8FontStr (string as_ean13code);//EAN8
//by kivens.jiang(kivens@china.com) 2005-03-01
string ls_LeftBlankStr="#$%&'()*+,"
string ls_LeftCode[9]={'112122','112212','112221','121122','122112','122211','121212','121221','122121'}
string ls_LeftEanStr='0123456789ABCDEFGHIJ'
string ls_RightEanStr='abcdefghij'
string ls_SplitStr='!'
string ls_MidStr='-'
if len(as_EAN13Code)<>8 then return ''
Integer i,li_index,li_LeftCode,li_Temp_Code
string ls_Result
li_LeftCode=Integer(Left(as_EAN13Code,1))
for i=1 to 8
li_Temp_Code=Integer(mid(as_EAN13Code,i,1)) + 1
if i>4 then
ls_Result=ls_Result+mid(ls_RightEanStr,li_Temp_Code,1)
else
ls_Result=ls_Result+mid(ls_LeftEanStr,li_Temp_Code + (Integer(Mid(ls_LeftCode[li_LeftCode],i - 1,1)) - 1)*10,1)
end if
next
ls_Result=ls_SplitStr+Mid(ls_Result,1,4)+ls_MidStr+Right(ls_Result,4)+ls_SplitStr
return ls_Result
end function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -