标签工具 文章 帮助 授权码.支付

以手工绘制为示例,讲解如何制作一个Code128的条形码

原创未经同意,请勿转载 2023-08-01 1100次阅读

制作一个或批量制作Code128条形码都非常简单,使用条形码生成工具就能轻松完成,但是如果不依赖工具而是自己制作条形码,那就需要熟悉条形码的生成原理。如果您希望了解条形码的生成原理,请看下文详解。

本文中,多零通过手工绘制一个条形码,旨在讲解条形码的生成原理。

以使用字符集A(CODE A)制作一个内容为“A-123”的条形码为示例

分两部分完成,第一部分是整理所有字符的编码信息,第二部分是根据字符编码信息绘制条形码。

第一部分,整理所有字符的编码信息

1,找出“A-123”的字符编码

Code128定义了一个字符集,共107个字符或符号,每个字符或符号都对应着Code128的编码。需要先把字符编码查找出来,再根据编码制作条形码。

一个条形码除了自己身的字符以外,额外还需要增加3个符号,分别是【开始符】、【校验码】、【终止符】,其排序是【开始符】放在第一位,最后两位是【校验码】、【终止符】,中间是条形码的实际内容的字符。

因此,这个示例中,整个条形码字符排序是【开始符】、【A】、【-】、【1】、【2】、【3】、【校验码】、【终止符】

对于【开始符】、【终止符】可以查Code128的字符集表获得,【校验码】则需要通过计算获到。

示例中的条形码内容为“A-123”,其编码查找如下图:(对于如何获取Code128字符对照表,文章结尾会给出方法。)

Code128标准中,一共有3种字符集(CODE A/B/C),且规定每个条形码均放置【开始符】在第1位,其作用是指明条形码使用哪一种字符集。

由于本示例使用字符集A生成条形码,因此找出字符集A(CODE A)的【开始符】编码如下图。

摘抄以上找出的字符信息的【序号】和【模块数】(也即是【编码】),汇总后,字符信息如下表:

字符 序号 编码
Start A 103 211412
A 33 111323
- 13 122132
1 17 123221
2 18 223211
3 19 221132
校验码 待计算 待计算
终止符 2331112

上面表格中,【序号】用于计算校验码,【编码】用于定位黑纹和白纹的位置和宽度大小,每一个编码共6个数字,每1个数字表示1条条纹,总是以黑纹开始,白纹结束(除终止符外),并且黑纹与白纹相隔出现。

最后一行是【终止符】,由于它不参与校验码生成,因此是没有序号的,其编码固定是2331112,共7位数字,也就只有【终止符】是7位数,其他字符均是6位数,并且每个Code128条形码都需要以【终止符】为结束标志。

2,计算校验码

详细的Code128校验码计算方法,可参考【如何计算Code128校验码】。

校验码的计算,是使用以上收集到的编码信息中【序号】数值来计算的。

这个例子中,校验码计算公式如下:

((开始符的序号×1)+(A的序号×1)+(-的序号×1)+(1的序号×2)+(2的序号×3)+(3的序号×4)) mod 103  。

即是,(103×1)+(33×1)+(13×2)+(17×3)+(18×4)+(19×5)=380,380除以103,其余数是71,即校验码是71,71在字符集中的编码是122114。

汇总后,字符的编码信息如下表:

字符 序号 编码
Start A 103 211412
A 33 111323
- 13 122132
1 17 123221
2 18 223211
3 19 221132
校验码 71 122114
终止符 2331112

第二部分,绘制条形码

3,绘制条形码的整体框架

绘制条形码主要是使用到字符信息中的【编码】数据。

以上表格的数据,每个字符的编码有6个数字,这6个数字相加的和都是11。6和11这两个数字,对应条形码的绘制是每个字符共有6条条纹(1个数字代表1个条纹),这6条条纹总的单位宽度是11,即是【6块11条】的意思。

还有一些规律,Code128条形码的条纹最小是1个单位宽度,最大是4个单位宽度;每个字符的总有6条条纹,总是以黑纹开始,白纹结束。

但是,只有【终止符】比较特殊,有7个数字共13个单位宽度,原因是整个条形码需要以黑纹结束,如果依然使用6个数字就只能是白纹结束,因此,在标准规范中终止符增加多1个数字。

由上面的内容,可计算得这个条形码共有90个单位宽度,即(11×7)+13=90,多零以2cm为1个单位宽度,即绘制的总宽度是180cm 。

为了方便绘制条纹,下图已标注出90个单位宽度的刻度,每个单位宽度2cm ,图示如下。

每个字符需要11个单位宽度,最后一位终止符需要13个单位宽度,

整个条形码字符排序是【开始符】、【A】、【-】、【1】、【2】、【3】、【校验码】、【终止符】,下面图示标出每个字符在条形码中的位置。

以上图示,就是本例条形码中,字符对应的位置和大小,单位宽度不一定是2cm,可以根据您的需要设定,下面开始为每个字符绘制黑纹和白纹。

4,根据字符的编码,绘制每一个字符的黑纹与白纹

上面整理汇总的字符编码中,第一个字符是【开始符】,其编码是【211412】共6位数,意思是共有6条条纹,每个数字表示条纹的宽度,即是第1条条纹单位宽度是2,第2条条纹是1,第3条条纹是1,第4条条纹是4...依此类推。每条黑纹和白纹相隔出现。

则【开始符】的条纹绘制如下图。

接着是第2个字符【A】,其编码是【111323】,则字符【A】的条纹绘制如下图。

每个字符均按照以上步骤绘制条纹,按照字符的【编码】数据,整体的条纹大小分布如下图。

最后,为黑纹填充黑色即可。整个条形码,黑纹与白纹是相隔出现的,每个字符均是以黑纹开始,以白纹结束,最后终止符是7条条纹,因此终止符是黑纹结束。

本示例中完整的效果图如下。

对照使用工具生成的同样的条形码,如下图。

上图条形码编辑工具来源于批量条形码生成器,无须任何安装,点击即可在线使用。

以上就是Code128条形码生成原理,绘制条形码并不难,难在第一部分的编码信息整理,需要对照查表和计算校验码,一旦出错那怕是1个数字,都会全功尽弃,所以多零不建议人工制作条形码,实际上也不需要人工制作,使用条形码工具会更准确、更轻松。

----------------------------

Code128条码字符集哪里获取?

Code128校验码的计算过程中,查询Code128字符集表是关键步骤之一,那么,如何获取到Code128字符集对照表?

网络搜索即可找到很多Code128字符集的相关信息。如果希望获取正式的官方文档,可以查找国际标准【ISO/IEC 15417:2007】、以及国内标准【GB/T 18347-2001】和【GB/T 15425-2014】的文档,里面都有完整的Code128字符集对照表。

参考资料:

GB/T 18347-2001:https://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=0BCD55B8A55B2922C0FFD40FEE3CDD79

GB/T 15425-2014:https://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=AF88702439737AB50E248CC1A6B706C2

---------------

了解更多: 如何解析读取Code128条形码的内容? 如何计算条形码Code128校验码 为什么条形码Code128终止符是7位数字

最新文章 如何强制生成校验码什么是缓存、存档数据?如何使用存档数据功能如何制作标准尺寸的EAN/UPC条形码关于自动补全、纠正Ean13、Ean8、UPC、UPC-E、ITF14校验码如何查询、删除重复数据行2023-11-29 突发网络故障情况说明批量导出不宜超过3000个什么是EAN13的右侧空白区如何设置SC规格尺寸什么是EAN\UPC的SC规格尺寸?如何添加EAN\UPC的附加符号?如何添加GS1-128的分隔符FNC1EAN\UPC的附加符号:EAN5、EAN22023-09-10 多零故障处理公告