对vb.net 打印条形码code39、code128A、code128C、code128Auto(picturebox和打印机)封装类一文的补充

在【精选】vb.net 打印条形码code39、code128A、code128C、code128Auto(picturebox和打印机)封装类_vb.net打印标签_WormJan的博客-CSDN博客

 这篇文章中,没有对含有字母的编码进行处理。这里另开一篇帖子,处理这种情况。

在那篇文章中,需要修改以下方法:

//添加对字母的支持
Private Shared Function code128_num()Dim code128 As New Dictionary(Of String, String())code128.Add("0", {"bssbbbsbbss", 16})code128.Add("1", {"bssbbbssbbs", 17})code128.Add("2", {"bbssbbbssbs", 18})code128.Add("3", {"bbssbsbbbss", 19})code128.Add("4", {"bbssbssbbbs", 20})code128.Add("5", {"bbsbbbssbss", 21})code128.Add("6", {"bbssbbbsbss", 22})code128.Add("7", {"bbbsbbsbbbs", 23})code128.Add("8", {"bbbsbssbbss", 24})code128.Add("9", {"bbbssbsbbss", 25})code128.Add("A", {"bsbsssbbsss", 33})code128.Add("B", {"bsssbsbbsss", 34})code128.Add("C", {"bsssbsssbbs", 35})code128.Add("D", {"bsbbsssbsss", 36})code128.Add("E", {"bsssbbsbsss", 37})code128.Add("F", {"bsssbbsssbs", 38})code128.Add("G", {"bbsbsssbsss", 39})code128.Add("H", {"bbsssbsbsss", 40})code128.Add("I", {"bbsssbsssbs", 41})code128.Add("J", {"bsbbsbbbsss", 42})code128.Add("K", {"bsbbsssbbbs", 43})code128.Add("L", {"bsssbbsbbbs", 44})code128.Add("M", {"bsbbbsbbsss", 45})code128.Add("N", {"bsbbbsssbbs", 46})code128.Add("O", {"bsssbbbsbbs", 47})code128.Add("P", {"bbbsbbbsbbs", 48})code128.Add("Q", {"bbsbsssbbbs", 49})code128.Add("R", {"bbsssbsbbbs", 50})code128.Add("S", {"bbsbbbsbsss", 51})code128.Add("T", {"bbsbbbsssbs", 52})code128.Add("U", {"bbsbbbsbbbs", 53})code128.Add("V", {"bbbsbsbbsss", 54})code128.Add("W", {"bbbsbsssbbs", 55})code128.Add("X", {"bbbsssbsbbs", 56})code128.Add("Y", {"bbbsbbsbsss", 57})code128.Add("Z", {"bbbsbbsssbs", 58})code128.Add("StartA", {"bbsbssssbss", 103})code128.Add("StartB", {"bbsbssbssss", 104})code128.Add("StartC", {"bbsbssbbbss", 105})code128.Add("Stop", {"bbsssbbbsbsbb", 106})Return code128
End Function

有人私信我说,让写一个获得code128B的方法。下面把代码贴上来:

Public Shared Function get_code_128B(ByVal barcode As String)Dim strr As String = barcodeDim code128 As Dictionary(Of String, String()) = code128_num()Dim code128_byid As Dictionary(Of String, String()) = code128_table()Dim chr As String, barstr As String, final As String = ""Dim start As String = code128.Item("StartB")(0)final += start'数据For i = 0 To strr.Length - 1chr = strr.Substring(i, 1)barstr = code128.Item(chr)(0)final += barstrNext i'校验Dim exam As Int16exam = code128.Item("StartB")(1)For i = 0 To strr.Length - 1exam += code128.Item(strr.Substring(i, 1))(1) * (i + 1)Next iexam = exam Mod code128.Item("StartA")(1)   '注意不是StartB。应该是103Dim excode As String = code128_byid.Item(exam)(4)final &= excode'stopfinal += code128.Item("Stop")(0)Return final
End Function

还有一点就是使用128C和包含128C混合编码的时候,不仅要判断是否是偶数个,还要判断是否全为数字,可以这样判断:

Dim k As Boolean = System.Text.RegularExpressions.Regex.IsMatch(“条码”, "^[0-9]+$")

经过测试没有发现遇到 I  生成失败的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/195126.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汽车虚拟仿真视频数据理解--CLIP模型原理

CLIP模型原理 CLIP的全称是Contrastive Language-Image Pre-Training,中文是对比语言-图像预训练,是一个预训练模型,简称为CLIP。该模型是 OpenAI 在 2021 年发布的,最初用于匹配图像和文本的预训练神经网络模型,这个任…

基于Vue+SpringBoot的超市账单管理系统 开源项目

项目编号: S 032 ,文末获取源码。 \color{red}{项目编号:S032,文末获取源码。} 项目编号:S032,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统设计3.1 总体设计3.2 前端设计3…

三天吃透Redis面试八股文

目录: Redis是什么?Redis优缺点?Redis为什么这么快?讲讲Redis的线程模型?Redis应用场景有哪些?Memcached和Redis的区别?为什么要用 Redis 而不用 map/guava 做缓存?Redis 数据类型有哪些&…

qsort使用举例和qsort函数的模拟实现

qsort使用举例 qsort是C语言中的一个标准库函数,用于对数组或者其他数据结构中的元素进行排序。它的原型如下: void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)); 我们可以去官网搜来看一看:…

YOLOv8 加持 MobileNetv3,目标检测新篇章

🗝️YOLOv8实战宝典--星级指南:从入门到精通,您不可错过的技巧   -- 聚焦于YOLO的 最新版本, 对颈部网络改进、添加局部注意力、增加检测头部,实测涨点 💡 深入浅出YOLOv8:我的专业笔记与技术总结   -- YOLOv8轻松上手, 适用技术小白,文章代码齐全,仅需 …

golang中的并发模型

并发模型 传统的编程语言(如C、Java、Python等)并非为并发而生的,因此它们面对并发的逻辑多是基于操作系统的线程。其并发的执行单元(线程)之间的通信利用的也是操作系统提供的线程或进程间通信的原语,比如…

闭眼检测实现

引言 这段代码是一个实时眼睛状态监测程序,可以用于监测摄像头捕获的人脸图像中的眼睛状态,判断眼睛是否闭合。具体应用实现作用说明如下: 1. 实时监测眼睛状态 通过摄像头捕获的实时视频流,检测人脸关键点并计算眼睛的 EAR&a…

基于灰狼算法(GWO)优化的VMD参数(GWO-VMD)

代码的使用说明 基于灰狼算法优化的VMD参数 代码的原理 基于灰狼算法(Grey Wolf Optimizer, GWO)优化的VMD参数(GWO-VMD)是一种结合了GWO和VMD算法的优化方法,用于信号分解和特征提取。 GWO是一种基于群体智能的优化…

辅助解决小白遇到的电脑各种问题

写这个纯属是为了让电脑小白知道一些电脑上的简单操作,勿喷!!! 一:当小白遇到电脑程序不完全退出怎么办? 使用软件默认的退出方式 此处拿百度网盘举例: 用户登录网盘后: 如果直接点…

多线程编程

1 线程的使用 1.1 为什么要使用多线程 在编写代码时,是否会遇到以下的场景会感觉到难以下手? 要做 2 件事,一件需要阻塞等待,另一件需要实时进行。例如播放器:一边在屏幕上播放视频,一边在等待用户的按…

Hive 定义变量 变量赋值 引用变量

Hive 定义变量 变量赋值 引用变量 变量 hive 中变量和属性命名空间 命名空间权限描述hivevar读写用户自定义变量hiveconf读写hive相关配置属性system读写java定义额配置属性env只读shell环境定义的环境变量 语法 Java对这个除env命名空间内容具有可读可写权利; …

2020年09月 Scratch(二级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 下面哪个按钮可以实现音乐结束时音量慢慢变小? A: B: C: D: