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

news2024/9/25 3:24:29

在【精选】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 = barcode
    Dim 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 - 1
        chr = strr.Substring(i, 1)
        barstr = code128.Item(chr)(0)
        final += barstr
    Next i

    '校验
    Dim exam As Int16
    exam = code128.Item("StartB")(1)
    For i = 0 To strr.Length - 1
        exam += code128.Item(strr.Substring(i, 1))(1) * (i + 1)
    Next i

    exam = exam Mod code128.Item("StartA")(1)   '注意不是StartB。应该是103
    Dim excode As String = code128_byid.Item(exam)(4)


    final &= excode

    'stop
    final += code128.Item("Stop")(0)
    Return final
End Function

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++入门】拷贝构造运算符重载

目录 1. 拷贝构造函数 1.1 概念 1.2 特征 1.3 常用场景 2. 赋值运算符重载 2.1 运算符重载 2.2 特征 2.3 赋值运算符 前言 拷贝构造和运算符重载是面向对象编程中至关重要的部分,它们C编程中的一个核心领域,本期我详细的介绍拷贝构造和运算符重载。 1. …

Js中clientX/Y、offsetX/Y和screenX/Y之间区别

Js中client、offset和screen的区别 前言图文解说实例代码解说 前言 本文主要讲解JavaScript中clientX、clientY、offsetX、offsetY、screenX、screenY之间的区别。 图文解说 在上图中,有三个框,第一个为屏幕,第二个为浏览器大小&#xff0c…

约数个数定理

首先在讲这个定理前,首先科普一下前置知识 约数: 何为约数,只要能整除n的整数就是n的约数,举个例子,3的约束是1和3因为1和3能整除3 质数: 除了这个数字本身和1以外没有其他因子的数字就叫质数&#xff…

AVL树和红黑树

AVL树和红黑树 一、AVL树1. 概念2. 原理AVL树节点的定义插入不违反AVL树性质违反AVL树性质左单旋右单旋左右双旋右左双旋总结 删除 3. 验证代码4. AVL树完整实现代码 二、红黑树1. 概念2. 性质3. 原理红黑树节点的定义默认约定插入情况一 (u存在且为红)情…

论文速览 Arxiv 2023 | DMV3D: 单阶段3D生成方法

注1:本文系“最新论文速览”系列之一,致力于简洁清晰地介绍、解读最新的顶会/顶刊论文 论文速览 Arxiv 2023 | DMV3D: DENOISING MULTI-VIEW DIFFUSION USING 3D LARGE RECONSTRUCTION MODEL 使用3D大重建模型来去噪多视图扩散 论文原文:https://arxiv.org/pdf/2311.09217.pdf…

【2017年数据结构真题】

请设计一个算法,将给定的表达式树(二叉树)转换成等价的中缀表达式(通过括号反映次序),并输出。例如,当下列两棵表达式树作为算法的输入时: 输出的等价中缀表达式分别为(ab)(a(-d)) 和…

OpenAI Assistants-API简明教程

OpenAI在11月6号的开发者大会上,除了公布了gpt4-v、gpt-4-turbo等新模型外,还有一个assistants-api,基于assistants-api开发者可以构建自己的AI助手,目前assistants-api有三类的工具可以用。首先就是之前大火的代码解释器(Code In…

隐式转换导致索引失效的原因

Num1 int Num2 varchar Str1不能为null Str2可null 例子1: 结果:124非常快,0.001~0.005秒出结果。3最慢,4~5秒出结果。 查询执行计划:124索引扫描。3全表扫描。 解释:首先四个23都产生隐式转换&#x…

第7天:信息打点-资产泄漏amp;CMS识别amp;Git监控amp;SVNamp;DS_Storeamp;备份

第7天:信息打点-资产泄漏&CMS识别&Git监控&SVN&DS_Store&备份 知识点: 一、cms指纹识别获取方式 网上开源的程序,得到名字就可以搜索直接获取到源码。 cms在线识别: CMS识别:https://www.yun…

【Gradle-13】SNAPSHOT版本检查

1、什么是SNAPSHOT SNAPSHOT版本是指尚未发布的版本,是一个「动态版本」,它始终指向最新的发布工件(gav),也就是说同一个SNAPSHOT版本可以反复用来发布。 这种情况在大型app多团队的开发中比较常见,比如us…

【Linux系统化学习】进程的状态 | 僵尸进程 | 孤儿进程

个人主页点击直达:小白不是程序媛 Linux专栏:Linux系统化学习 目录 操作系统进程的状态 运行状态 阻塞状态 进程阻塞的现象 挂起阻塞状态 Linux进程状态 Linux内核源代码怎么说 R(running状态)运行状态 S(sl…

关于DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC的一些发现

任务在哪 这个是11g以后的自动收集统计信息的后台任务,10g之前是在dba_scheduler_jobs里查看 SQL> SELECT CLIENT_NAME ,STATUS ,MEAN_INCOMING_TASKS_7_DAYS,MEAN_INCOMING_TASKS_30_DAYS FROM DBA_AUTOTASK_CLIENT WHERE…

云课五分钟-0Cg++默认版本和升级-std=c++17

前篇: 云课五分钟-0B快速排序C示例代码-注释和编译指令 视频: 云课五分钟-0Cg默认版本和升级-stdc17 文本: 在Linux系统中,可以通过以下步骤升级g: 打开终端,使用root权限或者sudo权限登录。输入以下命令…

[AI]ChatGPT4 与 ChatGPT3.5 区别有多大

ChatGPT 3.5 注册已经不需要手机了,直接邮箱认证就可以,这可真算是好消息,坏消息是 ChatGPT 4 还是要收费。 那么 GPT-3.5 与 GPT-4 区别有多大呢,下面简单测试一下。 以从 TDengine 订阅数据为例,TDengine 算是不太小…

【C++】一文全解C++中的异常:标准库异常体系&自定义异常体系(含代码演示)

前言 大家好吖,欢迎来到 YY 滴C系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! 目录 一.C语言传统的处理错误的方式二.C异常…

python-opencv 培训课程笔记(1)

python-opencv 培训课程笔记(1) 博主参加了一次opencv库的培训课程,把课程所学整理成笔记,供大家学习,第一次课程包括如下内容: 1.读取图像 2.保存图像 3.使用opencv库显示图像 4.读取图像为灰度图像 …

每天一道算法题(六)——返回一组数字中所有和为 0 且不重复的三元组

文章目录 前言1、问题2、示例3、解决方法4、效果5、注意点 前言 注意:答案中不可以包含重复的三元组。 1、问题 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] n…

基于PHP+MySql的酒店信息管理系统的设计与实现

一、系统开发环境 运行环境:phpstudy或者wampserver, 开发工具:vscodephpstorm 数据库:mysql 二、酒店管理系统功能 1.前台功能: 首页客房推荐,周边特色介绍 酒店在线预订 订单查询,可以…

linux中利用fork复制进程,printf隐藏的缓冲区,写时拷贝技术,进程的逻辑地址与物理地址

1.prinf隐藏的缓冲区 1.思考:为什么会有缓冲区的存在? 2.演示及思考? 1).演示缓存区没有存在感 那为什么我们感觉不到缓冲区的存在呢?我们要打印东西直接就打印了呢? 我们用代码演示一下: 比如打开一个main.c,输入内容如下: #include <stdio.h>int main(){printf…

【机器学习】划分训练集和测试集的方法

在机器学习中&#xff0c;我们的模型建立完成后&#xff0c;通常要根据评估指标来对模型进行评估&#xff0c;以此来判断模型的可用性。而评估指标主要的目的是让模型在未知数据上的预测能力最好。因此&#xff0c;我们在模型训练之前&#xff0c;要对训练集和测试集进行划分。…