一维条码打印的C#实现(Code128)
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=;
for(int ii=;ii<inputData.Length;ii++)
{
if(inputData[ii]>=)
{
checksum+=(inputData[ii]-)*(ii+);
}
else
{
checksum+=(inputData[ii]+)*(ii+);
}
}
checksum=checksum%;
if(checksum<)
{
checksum+=;
}
else
{
checksum+=;
}
result=Convert.ToChar()+inputData.ToString()+Convert.ToChar(checksum)+Convert.ToChar();
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",,FontStyle.Regular,GraphicsUnit.World);
Font ft2 = new System.Drawing.Font("Code 128",,FontStyle.Regular,GraphicsUnit.World);
Brush br = new SolidBrush(Color.Black);
Margins margins = new Margins(,,,);
av.PageSettings.Margins = margins; av.Graphics.DrawString(Get128CodeString(inputString),ft2,br,,-);
av.Graphics.DrawString(inputString,ft1,br,,);
av.HasMorePages = false;
}
代码用到打印的东西需要引用:
using System.Drawing.Printing;
定义全局变量:
string inputString;
在按钮click中测试:
inputString = ""; //查看Code128码的值: //lblBarCode.Text = Get128CodeString(inputString); PrintLable();
一维条码打印的C#实现(Code128)的更多相关文章
- C# GDI+绘制一维条码打印模糊的解决办法
最近遇到使用zxing生成的一维条码打印出来的条码图形很模糊根本识别不了.其实原因只有一句话: bitmap没有直接使用PrintDocument的Graphics画布进行绘制,而是中间处理了一下外部 ...
- Code 128 规则解析
1.CODE 128 标准 1.1 code 128码格式: 格式: 从左起: 空白区域,起始字符(Start),数据区域(data),校验码(check),结束字符(Stop),空白区域. ...
- SAP smartform 实现打印条形码
先在SE73里定义一个新的BARCODE,注意一定要用新的才可以,旧的是打印不出来的. 然后定义一个SMARTFORM的样式,把你定义的BARCODE放到字符样式里面去. 再做SMARTFORM就可以 ...
- Code128
条形码 条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符.常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成的平行线图案.条形 ...
- 基于Metronic的Bootstrap开发框架经验总结(14)--条码和二维码的生成及打印处理
在很多项目里面,对条形码和二维码的生成和打印也是一种很常见的操作,在Web项目里面,我们可以利用JS生成条形码和二维码的组件有很多.本文引入两个比较广泛使用的JS组件,用来处理条形码和二维码的生成处理 ...
- Web打印--Lodop API
Lodop是一款专业的WEB打印控件,其设计目标是简单易用.功能足够强大,开创WEB打印开发的新局面. Lodop设计者对WEB下的打印开发任务进行了分类汇总,高度抽象,设计出仅用几个功能函数,就可实 ...
- [原创]Lodop打印, 以及Lodop引用css文件控制打印样式的问题.
最近在做Lodop打印功能: 思路是: 用MasterPage搭个打印页面的框架, 然后在具体的页面中填入数据, 打印的样式由母版页和CSS来控制. 困扰了一天的问题是: 在打印的JS文件中, 引 ...
- 利用Code128字体将文本转换为code128条形码
利用Code128字体将文本转换为code128条形码[转] 最近在做仓储的项目,许多的打印文件都包含条形码,之前一直使用C39P24DhTt字体直接转换为39码,但是最近要求使用code128编 ...
- 问题解决——使用GP-3120TN打印条形码标签
终于大致的尝试出了参数和编程手册里指令的使用. 在这里,感谢佳博中一个叫做"Gprinter 陶玮"的工程师所提供的技术支持.非常感谢,如果没有你,在写这篇文章之前我可能换别的打印 ...
随机推荐
- async fifo
异步fifo,解决跨时钟域的数据传输问题. 由binary,gray两种counter组成,在读写domain之间,只传输gray code. 主要的设计难点在empty和full的产生中. empt ...
- nginx for windows中的一项缺陷
按照官网上的说法,使用 start nginx 启动 nginx,使用 nginx -s quit 可以优雅地退出. 经实验,使用 start nginx 之后,会启动两个 nginx 的进程,据官网 ...
- 开源软件free download manager在windows defender中报毒
从官网上下载的fdm lite 3.9.6,从图片中可以看出安装包有数字签名,windows defender报毒,在线杀毒也检出木马,官网的程序更新到了3.9.6版本,在sourceforge上的源 ...
- 使用sysprep克隆虚拟机
1.虚拟机安装windows2008 x64 r2 2.安装完毕后,运行”c:\windows\system32\sysprep\sysprep.exe” 3.选择”进入系统全新体验(OOBE),勾选 ...
- js默认比较第一个数字大小
解决办法:先把数字用Number转化:num=Number(num);然后再比较 和parseInt区别
- MySQL函数汇总
前言 MySQL提供了众多功能强大.方便易用的函数,使用这些函数,可以极大地提高用户对于数据库的管理效率,从而更加灵活地满足不同用户的需求.本文将MySQL的函数分类并汇总,以便以后用到的时候可以随时 ...
- nodejs和mongodb实践
首先,当然是都安装了nodejs 和mongodb了.这必须是前提条件. 现在我们要用nodejs连接mongodb数据库了.我这里只是一个非常非常简单是实践,初学嘛.更深入的学习之后,我会仔细写笔记 ...
- owner window 和 parent window 有什么区别?
1.Pop-up窗口: 一个弹出窗口是必须具有WS_POPUP属性的窗口,弹出窗口只能是一个Top-Level窗口,不能是子窗口,弹出窗口多用于对话框和消 ...
- 危险的 SQL
看下这个 SQL , 有什么问题 ? <update id="update" parameterType="CreativeGroupDO"> up ...
- 在HTML页面获取当前系统时间
<script language="javascript"> function getCurDate() { var d = new Date(); var week; ...