条形码
条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成的平行线图案。条形码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等许多信息,因而在商品流通、图书管理、邮政管理、银行系统等许多领域都得到广泛的应用。
一维条形码
一维条形码只是在一个方向(一般是水平方向)表达信息,而在垂直方向则不表达任何信息,其一定的高度通常是为了便于阅读器的对准。
一维条形码的应用可以提高信息录入的速度,减少差错率,但是一维条形码也存在一些不足之处:
* 数据容量较小:30个字符左右
* 只能包含字母和数字
* 条形码尺寸相对较大(空间利用率较低)
* 条形码遭到损坏后便不能阅读
生成一维条形码的方法
先通过Visual Studio 2015的NuGet Package Manager下载安装Spire.Barcode
// 创建BarcodeSettings对象
BarcodeSettings settings = new BarcodeSettings();
// 设置条形码类型为EAN-13
settings.Type = BarCodeType.EAN13;
// 设置条形码数据
string tt = "111111789012";
settings.Data = tt;
// 使用校检和
settings.UseChecksum = CheckSumMode.ForceEnable;
//在底部显示条形码数据
settings.ShowTextOnBottom = true;
// 在底部显示条形码数据
settings.X = 1f;
// 初始化BarCodeGenerator对象, 传入以上设置
BarCodeGenerator generator = new BarCodeGenerator(settings);
//创建条形码图片并保存为PNG格式
Image image = generator.GenerateImage();
string ss = Server.MapPath("~/AAA/");
string path = ss + tt + ".png";
image.Save(path, System.Drawing.Imaging.ImageFormat.Png);
ViewBag.ww = "~/AAA/" + tt + ".png";
//视图
<img src="@Url.Content(@ViewBag.ww)" />
二维条形码
在水平和垂直方向的二维空间存储信息的条形码, 称为二维条形码(2-dimensional bar code)。
与一维条形码一样,二维条形码也有许多不同的编码方法,或称码制。就这些码制的编码原理而言,通常可分为以下三种类型
⒈ 线性堆叠式二维码
是在一维条形码编码原理的基础上,将多个一维码在纵向堆叠而产生的。典型的码制如:Code 16K、Code 49.PDF417等。
2. 矩阵式二维码
是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。典型的码制如:Aztec、Maxi Code、QR Code、 Data Matrix等。
3. 邮政码
通过不同长度的条进行编码,主要用于邮件编码,如:Postnet、BPO 4-State。
网址二维码生成:
链接:https://pan.baidu.com/s/1Rc99C3w-OWxIX-z9XJfzuA
提取码:ryzp
链接:https://pan.baidu.com/s/1BzCep2W1wyaVx1F8bxZ0jQ
提取码:elri
//创建 BarcodeSettings 对象
BarcodeSettings settings = new BarcodeSettings();
//设M条码类型为二维码
settings.Type = BarCodeType.QRCode;
//设M二维码数据
string tt = "111111119";
settings.Data = tt;
//设M数据类型为数字
settings.QRCodeDataMode = QRCodeDataMode.Numeric;
//不显示文本
settings.ShowText = false;
//设M二维码错误修正级别
settings.QRCodeECL = QRCodeECL.H;
//设M宽度
settings.X = 2.0f;
//初始化 8arCodeGenerator 对象
BarCodeGenerator generator = new BarCodeGenerator(settings);
//创建二维码图片并保存为PNG格式
Image image = generator.GenerateImage();
string ss= Server.MapPath("~/AAA/");
string path = ss + tt+".png";
image.Save(path);
ViewBag.ww = "~/AAA/"+ tt + ".png";
条码编码方式-----Code 39与code 128条形码的区别
CODE 39码的编码规则是:
1、 每五条线表示一个字符;
2、 粗线表示1,细线表示0;
3、 线条间的间隙宽的表示1,窄的表示0;
4、 五条线加上它们之间的四条间隙就是九位二进制编码,而且这九位中必定有三位是1,所以称为39码;
5、 条形码的首尾各一个*标识开始和结束
CODE 128介绍
CODE128是一种高效率条码. 它一共映射了106种编码, 每种编码针对不同版本的CODE128(CODE128A, CODE128B, CODE128C), 代表了不同的数据组合. 同时, 每种编码通过11个黑白条模块的组合实现. 终止符比较特殊,由13个模块组成.
CODE128码是广泛应用在企业内部管理、生产流程、物流控制系统方面的条码码制,由于其优良的特性在管理信息系统的设计中被广泛使用,CODE128码是应用最广泛的条码码制之一。
CODE128码是1981年引入的一种高密度条码,CODE128 码可表示从 ASCII 0 到ASCII 127 共128个字符,故称128码。其中包含了数字、字母和符号字符;
CODE 128 码的特点:
1.可表示高密度数据和字符串;
2.每个字符由3个条、3个空、11个单元构成,字符串可变长;
3.符号内含校验码;
4.有三种不同的版本:A(数字、大写字母、控制字符)B(数字、大小字母、字符)C(双位数字)
CODE128A: 标准数字和字母, 控制符, 特殊字符
CODE128B: 标准数字和字母, 小写字母, 特殊字符
CODE128C: [00]-[99]的数字对集合, 共100个
5.可用128个字符分别在A、B或C三个字符串集合中。
CODE128 码与CODE39码的区别:
Code 128码与Code 39码有很多的相近性,都广泛运用在企业内部管理、生产流程、物流控制系统方面。不同的在于Code 128比Code 39能表现更多的字符,单位长度里的编码密度更高。当单位长度里不能容下Code 39编码或编码字符超出了Code 39的限制时,就可选择Code 128来编码。所以Code 128比Code 39更具灵性。