一维条码打印的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 陶玮"的工程师所提供的技术支持.非常感谢,如果没有你,在写这篇文章之前我可能换别的打印 ...
随机推荐
- cocos2dx建立项目
http://www.cocos.com/doc/article/index?type=wiki&url=/doc/cocos-docs-master/manual/framework/nat ...
- JSP-05- JSP总结
1 客户端请求新页面 <%@ page language="java" contentType="text/html; charset=UTF-8" ...
- 解决xfce4桌面图标消失的问题
问题表现:panel还在,桌面的背景变成灰色,桌面图标消失,桌面右键没反映 解决方法:从登录管理器中登录另一个用户,发现桌面正常,猜测是由于家目录下的配置文件引起的. 删除 ~/.cache/sess ...
- C# 时间现实问题(12小时制与24小时制)
最近在修改项目中遇到时间问题,12小时制与24小时制的问题,想再次跟各位同仁提个醒. yyyy-MM-dd HH:mm:ss------大写的HH为24小时制 yyyy-MM-dd hh:mm:ss- ...
- 最长上升子序列O(nlogn)算法详解
最长上升子序列 时间限制: 10 Sec 内存限制:128 MB 题目描述 给定一个序列,初始为空.现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置.我们想知道此时最长上升子 ...
- https笔记
TCP提供了可靠的,面向连接的字节流服务. 1)应用数据分割成TCP认为适合发送的数据块,通过MSS(最大数据包长度)来控制. 2)重传机制 3)对首部和数据进行校验 4)TCP对收到的数据进行排序, ...
- [转]学习 WCF (6)--学习调用WCF服务的各种方法
转自:http://www.cnblogs.com/gaoweipeng/archive/2009/07/26/1528263.html 作者这篇博文写得很全面. 根据不同的情况,我们可以用不同的方法 ...
- 6.1:SportStore:一个真实的应用
之前的小例子让我们演示了AngularJS的一些特性,但他们缺少上下文.要解决这个问题,作者要创建一个简单单真实的电子商务应用. 作者将创建一个在线产品分类,客户可以通过分类和页面浏览,一个购物车用户 ...
- DockerUI安装、使用
虽然大多数开发人员和管理人员通过命令行来创建及运行Docker容器,但Docker的Remote API让他们可以通过充分利用REST(代表性状态传输协议)的API,运行相同的命令.这时,Docker ...
- web.xml中 error-page的正确用法
<error-page> <error-code>404</error-code> <location>/mvc/hello1?i=1</loca ...