一、简介

一维码Code 39:由于编制简单、能够对任意长度的数据进行编码、支持设备广泛等特性而被广泛采用。

Code 39码特点:

  1. 能够对任意长度的数据进行编码,其局限在于印刷品的长度和条码阅读器的识别范围。
  2. 支持设备广泛,目前几乎所有的条形码阅读设备都能阅读Code 39码,打印机也是同样情况。
  3. 编制简单,简单的开发技术就能快速生成相应的编码图像。
  4. 一般Code 39码由5条线和分开它们的4条缝隙共9个元素构成。线和缝隙有宽窄之分,而且无论线还是缝隙仅有3个比其他的元素要宽一定比例。39码因此得名。

Code 39码编码规则:

  1. 每五条线表示一个字符;
  2. 粗线表示1,细线表示0;
  3. 线条间的间隙宽的表示1,窄的表示0;
  4. 五条线加上它们之间的四条间隙就是九位二进制编码,而且这九位中必定有三位是1,所以称为39码;
  5. 条形码的首尾各一个”*”标识开始和结束。

Code 39码只接受如下43个有效输入字符:

  1. 26个大写字母(A – Z);
  2. 十个数字(0 – 9);
  3. 连接号(-),句号(.),空格,美圆符号($),斜扛(/),加号(+)以及百分号(%)。其余的输入将被忽略。

Code 39码通常情况下不需要校验码。但是对于精确度要求高的应用,需要在Code 39条形码后面增加一个校验码。由于可以合并两个字符来表达第三个字符.这样就可以用Code 39条形码来表示整个ASCII表.这样就产生了Code 39全ASCII码字型.

二、实现

         public ActionResult CODE_39()
{
EncodingOptions options = new EncodingOptions();
options.PureBarcode = false; //是否将内容字符串显示在图片上。false 为显示 true为不显示
options.GS1Format = false; //是否符合GS1
options.Width = ; //图片宽度,根据内容的长度会自动增长
options.Height = ; //图片高度
options.Margin = ; //填充 左右填充 BarcodeWriter writer = new BarcodeWriter();
writer.Format = BarcodeFormat.CODE_39;
writer.Options = options; //如需设置图片为其它颜色,使用此段代码
//BitmapRenderer renderer = new BitmapRenderer();
//renderer.Foreground = Color.Black;
//renderer.Background = Color.White;
//writer.Renderer = renderer; Bitmap bmp = writer.Write("");
MemoryStream ms = new MemoryStream();
bmp.Save(ms, ImageFormat.Png);
ms.Flush();
ms.Position = ;
return File(ms, "application/x-png");
}

测试图像如下:

三、解码

  点击查看

(zxing.net)一维码Code 39的简介、实现与解码的更多相关文章

  1. 一维码Code 39简介及其解码实现(zxing-cpp)

    一维码Code 39:由于编制简单.能够对任意长度的数据进行编码.支持设备广泛等特性而被广泛采用. Code 39码特点: 1. 能够对任意长度的数据进行编码,其局限在于印刷品的长度和条码阅读器的识别 ...

  2. (zxing.net)一维码Code 93的简介、实现与解码

    一.简介 一维码Code 93: Code 93码与Code 39码的字符集相同,但93码的密度要比39码高,因而在面积不足的情况下,可以用93码代替39码.它没有自校验功能,为了确保数据安全性,采用 ...

  3. (zxing.net)一维码Code 128的简介、实现与解码

    一.简介 一维码Code 128:1981年推出,是一种长度可变.连续性的字母数字条码.与其他一维条码比较起来,相对较为复杂,支持的字元也相对较多,又有不同的编码方式可供交互运用,因此其应用弹性也较大 ...

  4. 一维码Code 93简介及其解码实现(zxing-cpp)

    一维码Code 93: Code 93码与Code 39码的字符集相同,但93码的密度要比39码高,因而在面积不足的情况下,可以用93码代替39码.它没有自校验功能,为了确保数据安全性,采用了双校验字 ...

  5. 一维码Code 128简介及其解码实现(zxing-cpp)

    一维码Code 128:1981年推出,是一种长度可变.连续性的字母数字条码.与其他一维条码比较起来,相对较为复杂,支持的字元也相对较多,又有不同的编码方式可供交互运用,因此其应用弹性也较大. Cod ...

  6. (zxing.net)一维码EAN 8的简介、实现与解码

    一.简介 一维码EAN 8:属于国际标准条码,由8个数字组成,属EAN的简易编码形式(EAN缩短码).当包装面积小于120平方公分以下无法使用标准码时,可以申请使用缩短码. 依结构的不同,EAN条码可 ...

  7. (zxing.net)一维码EAN 13的简介、实现与解码

    一维码EAN 13:属于国际标准条码, 由13个数字组成,为EAN的标准编码型式(EAN标准码). 依结构的不同,EAN条码可区分为: EAN 13码: 由13个数字组成,为EAN的标准编码型式(EA ...

  8. (zxing.net)一维码UPC A的简介、实现与解码

    一.简介 UPC(Universal Product Code)码是最早大规模应用的条码,其特性是一种长度固定.连续性的条  码,目前主要在美国和加拿大使用,由于其应用范围广泛,故又被称万用条码. U ...

  9. (zxing.net)一维码UPC E的简介、实现与解码

    UPC(Universal Product Code)码是最早大规模应用的条码,其特性是一种长度固定.连续性的条  码,目前主要在美国和加拿大使用,由于其应用范围广泛,故又被称万用条码. UPC码仅可 ...

随机推荐

  1. 修改android Studio SDK 路径产生的问题(模拟器不能启动了)

    原因:将 c:\user\admin\appdata\android\sdk 修改为 F:\AndroidProgram\Sdk 原来的虚拟机不能用了,要新建虚拟机才可以.

  2. 使用json格式去call外部系统

    1. 使用postman去call post方式 body填入对应的json请求 格式选json 2. 使用java 代码去call import java.io.BufferedReader; im ...

  3. jbpm角色审批

    可分配是一个部门或角色组,也可以选择一个表达式操作,提交任务时可以根据权限过滤这个部门或组的用户中选择一个可操作用户 <task name="审核">          ...

  4. unit_2_homework

    随记2018/4/23 # 找元祖中的元素,移除每个元素的空格,并查找以a或A开头,c结尾的所有元素. # 思路:将i取出来,求得li列表中有多少个元素for i in range(len(li)): ...

  5. C# Common Keyword II

    [C# Common Keyword II] 1.as 运算符用于在兼容的引用类型之间执行某些类型的转换. class csrefKeywordsOperators { class Base { pu ...

  6. winfrom 循环播放图片

    没啥新东西了,就是遍历和匹配文件名然后获取对象,放到picturebox里面 选中listview中想要查看的图片,然后点击查看按钮,进行↓代码. if (listView1.SelectedItem ...

  7. XIb中使用tableview报错UIViewAlertForUnsatisfiableConstraints

    1.使用断点工具并不能找出错误,最后仔细看了下报错信息 2.报错信息 [LayoutConstraints] Unable to simultaneously satisfy constraints. ...

  8. CloudStack tomcat集成方式分析

    CloudStack 的server.xml和tomcat6.conf都是软连接   CloudStack 在执行脚本时报异常如下:   修改vim /etc/sudoers文件,具体如下     以 ...

  9. loadrunner怎么进行内容检查

    运行测试时,常常需要验证某些内容是否出现在返回的页面上.内容检查验证脚本运行时 Web 页面上是否出现期望的信息.可以插入两种类型的内容检查:➤ 文本检查.检查文本字符串是否出现在 Web 页面上.➤ ...

  10. hdu 折线分割平面(递推)

    题解: 首先我们考虑直线的情况: 当n=1时原来的1个平面被分割成了2个: 当n=2时原来的2个平面被分割成了4个: 当n=3时原来的4个平面被分割成了7个: 也就是说F(n)=F(n-1)+n且n= ...