Csharp/C#教程:C#实现用于生成条形码的类分享

本文实例讲述了C#实现用于生成条形码的类。分享给大家供大家参考。具体如下:

这个C#类可以用来生成39码12位标准条形码

usingSystem.Collections; usingSystem.Text.RegularExpressions; namespaceDotNet.Utilities { publicclassBarCodeToHTML { publicstaticstringget39(strings,intwidth,intheight) { Hashtableht=newHashtable(); #region39码12位 ht.Add('A',"110101001011"); ht.Add('B',"101101001011"); ht.Add('C',"110110100101"); ht.Add('D',"101011001011"); ht.Add('E',"110101100101"); ht.Add('F',"101101100101"); ht.Add('G',"101010011011"); ht.Add('H',"110101001101"); ht.Add('I',"101101001101"); ht.Add('J',"101011001101"); ht.Add('K',"110101010011"); ht.Add('L',"101101010011"); ht.Add('M',"110110101001"); ht.Add('N',"101011010011"); ht.Add('O',"110101101001"); ht.Add('P',"101101101001"); ht.Add('Q',"101010110011"); ht.Add('R',"110101011001"); ht.Add('S',"101101011001"); ht.Add('T',"101011011001"); ht.Add('U',"110010101011"); ht.Add('V',"100110101011"); ht.Add('W',"110011010101"); ht.Add('X',"100101101011"); ht.Add('Y',"110010110101"); ht.Add('Z',"100110110101"); ht.Add('0',"101001101101"); ht.Add('1',"110100101011"); ht.Add('2',"101100101011"); ht.Add('3',"110110010101"); ht.Add('4',"101001101011"); ht.Add('5',"110100110101"); ht.Add('6',"101100110101"); ht.Add('7',"101001011011"); ht.Add('8',"110100101101"); ht.Add('9',"101100101101"); ht.Add('+',"100101001001"); ht.Add('-',"100101011011"); ht.Add('*',"100101101101"); ht.Add('/',"100100101001"); ht.Add('%',"101001001001"); ht.Add('$',"100100100101"); ht.Add('.',"110010101101"); ht.Add('',"100110101101"); #endregion #region39码9位 //ht.Add('0',"000110100"); //ht.Add('1',"100100001"); //ht.Add('2',"001100001"); //ht.Add('3',"101100000"); //ht.Add('4',"000110001"); //ht.Add('5',"100110000"); //ht.Add('6',"001110000"); //ht.Add('7',"000100101"); //ht.Add('8',"100100100"); //ht.Add('9',"001100100"); //ht.Add('A',"100001001"); //ht.Add('B',"001001001"); //ht.Add('C',"101001000"); //ht.Add('D',"000011001"); //ht.Add('E',"100011000"); //ht.Add('F',"001011000"); //ht.Add('G',"000001101"); //ht.Add('H',"100001100"); //ht.Add('I',"001001100"); //ht.Add('J',"000011100"); //ht.Add('K',"100000011"); //ht.Add('L',"001000011"); //ht.Add('M',"101000010"); //ht.Add('N',"000010011"); //ht.Add('O',"100010010"); //ht.Add('P',"001010010"); //ht.Add('Q',"000000111"); //ht.Add('R',"100000110"); //ht.Add('S',"001000110"); //ht.Add('T',"000010110"); //ht.Add('U',"110000001"); //ht.Add('V',"011000001"); //ht.Add('W',"111000000"); //ht.Add('X',"010010001"); //ht.Add('Y',"110010000"); //ht.Add('Z',"011010000"); //ht.Add('-',"010000101"); //ht.Add('.',"110000100"); //ht.Add('',"011000100"); //ht.Add('*',"010010100"); //ht.Add('$',"010101000"); //ht.Add('/',"010100010"); //ht.Add('+',"010001010"); //ht.Add('%',"000101010"); #endregion s="*"+s.ToUpper()+"*"; stringresult_bin="";//二进制串 try { foreach(charchins) { result_bin+=ht[ch].ToString(); result_bin+="0";//间隔,与一个单位的线条宽度相等 } } catch{return"存在不允许的字符!";} stringresult_html="";//HTML代码 stringcolor="";//颜色 foreach(charcinresult_bin) { color=c=='0'?"#FFFFFF":"#000000"; result_html+="<divstyle="width:"+width+"px;height:"+height+"px;float:left;background:"+color+";"></div>"; } result_html+="<divstyle="clear:both"></div>"; intlen=ht['*'].ToString().Length; foreach(charcins) { result_html+="<divstyle="width:"+(width*(len+1))+"px;float:left;color:#000000;text-align:center;">"+c+"</div>"; } result_html+="<divstyle="clear:both"></div>"; return"<divstyle="background:#FFFFFF;padding:5px;font-size:"+(width*10)+"px;font-family:'楷体';">"+result_html+"</div>"; } publicstaticstringgetEAN13(strings,intwidth,intheight) { intcheckcode_input=-1;//输入的校验码 if(!Regex.IsMatch(s,@"^d{12}$")) { if(!Regex.IsMatch(s,@"^d{13}$")) { return"存在不允许的字符!"; } else { checkcode_input=int.Parse(s[12].ToString()); s=s.Substring(0,12); } } intsum_even=0;//偶数位之和 intsum_odd=0;//奇数位之和 for(inti=0;i<12;i++) { if(i%2==0) { sum_odd+=int.Parse(s[i].ToString()); } else { sum_even+=int.Parse(s[i].ToString()); } } intcheckcode=(10-(sum_even*3+sum_odd)%10)%10;//校验码 if(checkcode_input>0&&checkcode_input!=checkcode) { return"输入的校验码错误!"; } s+=checkcode;//变成13位 //000000000101左侧42个01010右侧35个校验7个101000000000 //6101左侧6位01010右侧5位校验1位101000000000 stringresult_bin="";//二进制串 result_bin+="000000000101"; stringtype=ean13type(s[0]); for(inti=1;i<7;i++) { result_bin+=ean13(s[i],type[i-1]); } result_bin+="01010"; for(inti=7;i<13;i++) { result_bin+=ean13(s[i],'C'); } result_bin+="101000000000"; stringresult_html="";//HTML代码 stringcolor="";//颜色 intheight_bottom=width*5; foreach(charcinresult_bin) { color=c=='0'?"#FFFFFF":"#000000"; result_html+="<divstyle="width:"+width+"px;height:"+height+"px;float:left;background:"+color+";"></div>"; } result_html+="<divstyle="clear:both"></div>"; result_html+="<divstyle="float:left;color:#000000;width:"+(width*9)+"px;text-align:center;">"+s[0]+"</div>"; result_html+="<divstyle="float:left;width:"+width+"px;height:"+height_bottom+"px;background:#000000;"></div>"; result_html+="<divstyle="float:left;width:"+width+"px;height:"+height_bottom+"px;background:#FFFFFF;"></div>"; result_html+="<divstyle="float:left;width:"+width+"px;height:"+height_bottom+"px;background:#000000;"></div>"; for(inti=1;i<7;i++) { result_html+="<divstyle="float:left;width:"+(width*7)+"px;color:#000000;text-align:center;">"+s[i]+"</div>"; } result_html+="<divstyle="float:left;width:"+width+"px;height:"+height_bottom+"px;background:#FFFFFF;"></div>"; result_html+="<divstyle="float:left;width:"+width+"px;height:"+height_bottom+"px;background:#000000;"></div>"; result_html+="<divstyle="float:left;width:"+width+"px;height:"+height_bottom+"px;background:#FFFFFF;"></div>"; result_html+="<divstyle="float:left;width:"+width+"px;height:"+height_bottom+"px;background:#000000;"></div>"; result_html+="<divstyle="float:left;width:"+width+"px;height:"+height_bottom+"px;background:#FFFFFF;"></div>"; for(inti=7;i<13;i++) { result_html+="<divstyle="float:left;width:"+(width*7)+"px;color:#000000;text-align:center;">"+s[i]+"</div>"; } result_html+="<divstyle="float:left;width:"+width+"px;height:"+height_bottom+"px;background:#000000;"></div>"; result_html+="<divstyle="float:left;width:"+width+"px;height:"+height_bottom+"px;background:#FFFFFF;"></div>"; result_html+="<divstyle="float:left;width:"+width+"px;height:"+height_bottom+"px;background:#000000;"></div>"; result_html+="<divstyle="float:left;color:#000000;width:"+(width*9)+"px;"></div>"; result_html+="<divstyle="clear:both"></div>"; return"<divstyle="background:#FFFFFF;padding:0px;font-size:"+(width*10)+"px;font-family:'楷体';">"+result_html+"</div>"; } privatestaticstringean13(charc,chartype) { switch(type) { case'A': { switch(c) { case'0':return"0001101"; case'1':return"0011001"; case'2':return"0010011"; case'3':return"0111101";//011101 case'4':return"0100011"; case'5':return"0110001"; case'6':return"0101111"; case'7':return"0111011"; case'8':return"0110111"; case'9':return"0001011"; default:return"Error!"; } } case'B': { switch(c) { case'0':return"0100111"; case'1':return"0110011"; case'2':return"0011011"; case'3':return"0100001"; case'4':return"0011101"; case'5':return"0111001"; case'6':return"0000101";//000101 case'7':return"0010001"; case'8':return"0001001"; case'9':return"0010111"; default:return"Error!"; } } case'C': { switch(c) { case'0':return"1110010"; case'1':return"1100110"; case'2':return"1101100"; case'3':return"1000010"; case'4':return"1011100"; case'5':return"1001110"; case'6':return"1010000"; case'7':return"1000100"; case'8':return"1001000"; case'9':return"1110100"; default:return"Error!"; } } default:return"Error!"; } } privatestaticstringean13type(charc) { switch(c) { case'0':return"AAAAAA"; case'1':return"AABABB"; case'2':return"AABBAB"; case'3':return"AABBBA"; case'4':return"ABAABB"; case'5':return"ABBAAB"; case'6':return"ABBBAA";//中国 case'7':return"ABABAB"; case'8':return"ABABBA"; case'9':return"ABBABA"; default:return"Error!"; } } } }

希望本文所述对大家的C#程序设计有所帮助。

您可能感兴趣的文章:手把手教你做超酷的条形码效果ASP.net(c#)生成条形码code39条码生成方法php生成EAN_13标准条形码实例asp.net用Zxing库实现条形码输出的具体实现php实现在线生成条形码示例分享(条形码生成器)zbar解码二维码和条形码示例asp.net(C#)生成Code39条形码实例条码枪可以扫描出Android上使用ZXing识别条形码与二维码的方法C#生成code128条形码的方法C#生成条形码图片的简单方法史上最简洁C#生成条形码图片思路及示例分享C#生成Code39条形码而非条形码字体的方法PHP生成条形码大揭秘

标签: 条形码

计时器的time_t和clock_t 的两种实现方法(推荐)

C#常用目录文件操作类实例

上述就是C#学习教程:C#实现用于生成条形码的类分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/906080.html

(0)
上一篇 2021年10月23日
下一篇 2021年10月23日

精彩推荐