一维条码打印的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 陶玮"的工程师所提供的技术支持.非常感谢,如果没有你,在写这篇文章之前我可能换别的打印 ...
随机推荐
- 直关的sql 联级更新语句
在sql-server中用这种写法最直观:UPDATE a SET a.c = b.c FROM table1 ainner join table2 b on b.a=a.aWHERE a.c is ...
- Android Handler简单使用
package com.example.myhandlertest3; import android.os.Bundle; import android.os.Handler; import andr ...
- ajax中网页传输(二)JSON——下拉列表显示练习
以json返回数据类型显示“民族下拉列表” 第一:body页面显示部分 <title>JSON下拉显示Nation表中的数据</title> <script src=&q ...
- CSS(Cascading Style Sheet,叠层样式表),作用是美化HTML网页。
CSS(Cascading Style Sheet,叠层样式表),作用是美化HTML网页. /*注释区域*/ 此为注释语法 一.样式表 (一)样式表的分类 1.内联样式表 和HTML联合显示,控 ...
- C# 文件读取(一)
1. 读写文件的步骤: 创建一个文件流 -- 创建相应的读写器 -- 执行读写操作 -- 关闭读写器 -- 关闭文件流 创建一个文件流: FileStream objfs = new FileSt ...
- Oracle 临时表
一.临时表的介绍: Oracle的临时表只存在于某个会话或者事物的生命周期里,此时临时表中的数据只对当前这个会话可见. 临时表经常被用于存放一个操作的中间数据(数据处理的中间环节). 临时表由于不产生 ...
- Shell 字符串比较
转自网络 Shell字符串比较 收藏 Shell 中整数比较方法及字符串的比较方法,如等于,不等于,大于,大于等于,小于,等等. 二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. --- ...
- js比typeof更准确的验证类型方法
var type = function (o){ var s = Object.prototype.toString.call(o); return s.match(/\[object (.*?)\] ...
- python :eval将字符串转换成字典
#将字符串打印成字典 b=''' {'record': {'weight':20,'server':'100.1.7.9','maxconn':50},'backend': 'www.oldboy.o ...
- python: indentationerror: unexpected indent
以后遇到了IndentationError: unexpected indent你就要知道python编译器是在告诉你“Hi,老兄,你的文件里格式不对了,可能是tab和空格没对齐的问题,你需要检查下t ...