条码打印功能

  系统是基于B/S架构的,系统里面有一个功能就是条码打印,本人是新手没有做过条码打印。所以我在google上找到了一个方法是生成条码

 

 

using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Response.Write(bar_code("www.sosuo8.com", 100, 1, 2)); } public string bar_code(object str, int ch, int cw, int type_code) { //str:输入的字符串;ch:要显示条形码的高度;cw:要显示条形码的宽度;type_code:代码类型 string strTmp = str.ToString(); string code = strTmp; // ToLower()将string转化成小写形式的副本,返回是使用指定区域的性的大小写规则。 strTmp = strTmp.ToLower(); int height = ch; int width = cw; //将传入的参数进行转化。 strTmp = strTmp.Replace("0", "_|_|__||_||_|"); ; strTmp = strTmp.Replace("1", "_||_|__|_|_||"); strTmp = strTmp.Replace("2", "_|_||__|_|_||"); strTmp = strTmp.Replace("3", "_||_||__|_|_|"); strTmp = strTmp.Replace("4", "_|_|__||_|_||"); strTmp = strTmp.Replace("5", "_||_|__||_|_|"); strTmp = strTmp.Replace("7", "_|_|__|_||_||"); strTmp = strTmp.Replace("6", "_|_||__||_|_|"); strTmp = strTmp.Replace("8", "_||_|__|_||_|"); strTmp = strTmp.Replace("9", "_|_||__|_||_|"); strTmp = strTmp.Replace("a", "_||_|_|__|_||"); strTmp = strTmp.Replace("b", "_|_||_|__|_||"); strTmp = strTmp.Replace("c", "_||_||_|__|_|"); strTmp = strTmp.Replace("d", "_|_|_||__|_||"); strTmp = strTmp.Replace("e", "_||_|_||__|_|"); strTmp = strTmp.Replace("f", "_|_||_||__|_|"); strTmp = strTmp.Replace("g", "_|_|_|__||_||"); strTmp = strTmp.Replace("h", "_||_|_|__||_|"); strTmp = strTmp.Replace("i", "_|_||_|__||_|"); strTmp = strTmp.Replace("j", "_|_|_||__||_|"); strTmp = strTmp.Replace("k", "_||_|_|_|__||"); strTmp = strTmp.Replace("l", "_|_||_|_|__||"); strTmp = strTmp.Replace("m", "_||_||_|_|__|"); strTmp = strTmp.Replace("n", "_|_|_||_|__||"); strTmp = strTmp.Replace("o", "_||_|_||_|__|"); strTmp = strTmp.Replace("p", "_|_||_||_|__|"); strTmp = strTmp.Replace("r", "_||_|_|_||__|"); strTmp = strTmp.Replace("q", "_|_|_|_||__||"); strTmp = strTmp.Replace("s", "_|_||_|_||__|"); strTmp = strTmp.Replace("t", "_|_|_||_||__|"); strTmp = strTmp.Replace("u", "_||__|_|_|_||"); strTmp = strTmp.Replace("v", "_|__||_|_|_||"); strTmp = strTmp.Replace("w", "_||__||_|_|_|"); strTmp = strTmp.Replace("x", "_|__|_||_|_||"); strTmp = strTmp.Replace("y", "_||__|_||_|_|"); strTmp = strTmp.Replace("z", "_|__||_||_|_|"); strTmp = strTmp.Replace("-", "_|__|_|_||_||"); strTmp = strTmp.Replace("*", "_|__|_||_||_|"); strTmp = strTmp.Replace("/", "_|__|__|_|__|"); strTmp = strTmp.Replace("%", "_|_|__|__|__|"); strTmp = strTmp.Replace("+", "_|__|_|__|__|"); strTmp = strTmp.Replace(".", "_||__|_|_||_|"); strTmp = strTmp.Replace("_", ""); strTmp = strTmp.Replace("|", ""); if (type_code == 1) { return strTmp + "
" + code; } else { return strTmp; } } }

 

这样是可以生成条码的但是,打印出来条码枪是扫不到了,原因是条码的生成是有一定的规则的,条码也分很多种。这种方法不可以。

 

  下来我看到有人说:“条码其实就是一种特殊的字体” 我觉得挺对的。然后开始找字体,但是很遗憾我没有找到。

 

  下来我看到条码控件,我就下载一个,就是一个Dll,他的用法和Dll一样就当他是一个控件用。在打印页面需要实例化和传参数。我的条码

 

随机生成13未的。下来又有一个问题存在,就是你如何能控制好条码打印出来的位置在条码纸的中间,而且条码纸我们用的是一行2个那种

 

WEB打印位置本来就难控制,然后我想到了

 

TableRow row = new TableRow();//声明一行 TableCell cellContent = new TableCell();//声明一列 //加载自定义控件 BarcodeImage cood = new BarcodeImage(); //实例化自定义控件 cood.ID = "cod" + i.ToString(); //空间ID cood.Data = number; //条码号 cood.BarcodeType = Cobainsoft.Windows.Forms.BarcodeType.EAN13;//条码类型 cood.CopyRightText=""; cellContent.Controls.Add(cood); //将条码加入到列里面 row.Cells.Add(cellContent); //将列加入到行里面 this.Table1.Rows.Add(row); //将行加入到表里面 ls.Add(number);

 

 这样一个条码就打印出来了。

 

 西安河豚软件科技有限公司

你可能感兴趣的:(string,object,dll,google,asp)