博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一维条码打印的C#实现(Code128)
阅读量:4552 次
发布时间:2019-06-08

本文共 2064 字,大约阅读时间需要 6 分钟。

1、CODE128基础知识

CODE128有三个版本: CODE128A: 标准数字和字母, 控制符, 特殊字符 CODE128B: 标准数字和字母, 小写字母, 特殊字符 CODE128C: [00]-[99]的数字对集合, 共100个

这里采用CODE128B版本,系统内需要安装Code 128字体

2、条码编码规则

条码由开始位、数据、校验位、停止位组成

条码=Convert.ToChar(204)+数据+Convert.ToChar(校验码)+Convert.ToChar(206);

需要计算的就是校验码了,下面直接给出转换函数:

private string Get128CodeString(string inputData){    string result;    int checksum=104;    for(int ii=0;ii
=32) { checksum+=(inputData[ii]-32)*(ii+1); } else { checksum+=(inputData[ii]+64)*(ii+1); } } checksum=checksum%103; if(checksum<95) { checksum+=32; } else { checksum+=100; } result=Convert.ToChar(204)+inputData.ToString()+Convert.ToChar(checksum)+Convert.ToChar(206); return result;}

 

3、打印

public void PrintLable(){    PrintDocument pd = new PrintDocument();    StandardPrintController controler = new StandardPrintController();    try    {            pd.PrintPage+=new PrintPageEventHandler(this.PrintCustomLable);        pd.PrintController = controler;        pd.Print();                            return;    }    catch(Exception err)    {        Console.WriteLine(err.Message);        return;    }    finally    {        pd.Dispose();    }}public void PrintCustomLable(Object Sender,PrintPageEventArgs av){    Font ft1 = new System.Drawing.Font("Times New Roman",18,FontStyle.Regular,GraphicsUnit.World);    Font ft2 = new System.Drawing.Font("Code 128",64,FontStyle.Regular,GraphicsUnit.World);    Brush br = new SolidBrush(Color.Black);    Margins margins = new Margins(50,50,50,145);    av.PageSettings.Margins = margins;        av.Graphics.DrawString(Get128CodeString(inputString),ft2,br,50,-3);    av.Graphics.DrawString(inputString,ft1,br,110,60);    av.HasMorePages = false;}

 

 

代码用到打印的东西需要引用:

using System.Drawing.Printing;

 定义全局变量:

string inputString;

在按钮click中测试:

inputString = "0123456789";//查看Code128码的值://lblBarCode.Text = Get128CodeString(inputString);PrintLable();

 

转载于:https://www.cnblogs.com/xxaxx/p/4408798.html

你可能感兴趣的文章
django request bug
查看>>
浏览器的post,get。
查看>>
什么是fortran语言之fortran语言入门
查看>>
开启GDB
查看>>
●POJ 2187 Beauty Contest
查看>>
二叉树_非递归先中后序_递归非递归求深度
查看>>
print(__file__)返回<encoding error>的问题
查看>>
122. 买卖股票的最佳时机 II
查看>>
ActiveMQ 即时通讯服务 浅析
查看>>
gsoap开发webservice
查看>>
LCA || BZOJ 1602: [Usaco2008 Oct]牧场行走 || Luogu P2912 [USACO08OCT]牧场散步Pasture Walking
查看>>
预处理
查看>>
[php] 使用IDE的正则搜索代码
查看>>
大型网站架构与分布式架构
查看>>
趣图:后端工程师是怎样调试CSS的
查看>>
SQL总结
查看>>
python 基础语法
查看>>
AjaxPro使用中遇到的问题之一
查看>>
集合(NSArray,Set,NSMutableArray,NSDictionary)
查看>>
Sum Root to Leaf Numbers
查看>>