1、条形码之三九码条形码之三九码(上)(附两三种制作方法)一、39码简介 39码是1974年发展出来的条码,是一种可供使用者双向扫描的分散式条码,也就是说两个资料码之间,必须包含一个不具任何意义的空白(或细白,其逻辑值为0),但其具有支援文字的能力,帮应用较一般条码广泛。三九码仅有两种单元宽度,分别为宽单元和窄单元。宽单元的宽度为窄单元的1到3倍,一般多选用2倍、2.5倍或3倍。三九码的每一个条码字符由九个单元组成,其中有三个宽单元,其余是窄单元,因此称为三九码。目前主要应用于工业产品、商业资料及医院的保健资料,它的最大优点是条码的长度没有强制的限定,可用大写英文字母码,且检查码可忽略不计。39码
2、还有编码规则简单、误码率低、所能表示字符个数多等特点,因此在各个领域有着极为广泛的应用。我国也制定了相应的国家标准(GB/T 12908-91)。二、39码的特性 标准的39码是由起始安全空间、起始码、资料码、可忽略不计的检查码、终止安全空间及终止码所构成,其所编成的39码如图所示。综合来说,39码有以下特性:o 条码的长度没有限制,可随着需求作弹性调整。但在规划长度的大小时,应考虑条码扫描器能允许的范围,避免条码扫描器无法读取完整的资料。 o 起始码和终止码必须固定为“*”字元。 o 允许条码扫描器进行双向的扫描处理。 o 由于39码具有自我检查能力,故检查码可有可无。 o 条码占用空间比较
3、大。 o 可表示的资料包含有0-9的数字,A-Z的英文字母,以及“+”、“-”、“*”、“/”、“%”、“$”、“.”等特殊字符,再加上空白字元“ ”,共计44组编码,并可组合出128个ASCII CODE的字元符号,如表所示。 表:ASCII DODE 字元符号与39码对照表ASCIICODE39ASCIICODE39ASCIICODE39ASCIICODE39NUL%USPSpace%V、%WSOH$A!/AAAa+ASTX$B口/BBBb+BETX$C#/CCCC+CEOT$D$/DDDB+DENQ$E%/EEEE+EACK$F/FFFF+FBEL$G,/GGGG+GBS$H(/HHHH
4、+HHT$I)/IIII+ILF$J*/JIJJJ+JVT$K+/KKKk+KFF$L,/LLLl+LCR$M-.MMM+MSO$N./0NNN+NSI$O/0OOO+ODLE$P00PPP+PDC1$Q11QQQ+QDc2$R22RRR+RDc3$S33SSS+SDC4$T44TTT+TNAK$U55UUU+USYN$V66VVV+VETB$W77WWW+WCAN$X88XXX+XEM$Y99YYY+YSUB$Z:/ZZZZ+ZESC%A;%F%K%QFS%B%I%N%T,%XUS%E?%J-%0DEL%Y,%Z三、39码编码方式 39码的每一个字元编码方式都是籍由九条不同排列的线条编码而得
5、。可区分以下四种类型,如表所示。表:39码字元编码方式类别线条形态逻辑形态线条数目粗黑线112细黑线11粗白线002细白线01英文字母部分 26个英文字母所对应的39码如表所示。表:39码编码对应表(英文字母部分)字元逻辑形态字元逻辑形态A110101001011N101011010011B101101001011O110101101001C110110100101P101101101001D101011001011Q101010110011E110101100101R110101011001F101101100101S101101011001G101010011011T10101101100
6、1H110101001101U110010101011I101101001101V100110101011J101011001101W110011010101K110101010011X100101101011L101101010011Y110010110101M110110101001Z100110110101数字与特殊符号部分 39码也可以表示数字0-9以及特殊符号,其对应的逻辑值如表所示。表:39码编码对应表(英文字母部分)字元逻辑形态字元逻辑形态0101001101101+10010100100111101001010111001010110112101100101011*100101
7、1011013110110010101/1001001010014101001101011%1010010010015110100110101$1001001001016101100110101.1100101011017101001011011空白10011010110181101001011019101100101101四、检查码的计算 39码中的检查码部分,并不是必要的部分,可依实际需要,决定加入与否,但在一般的情况下通常多半是予以省略不印,以减少编码的长度与扫描的时间。39码的检查码计算必须先利用表(检查码相对值对照表)将编码字元的相对值查出,将查出的相对值累加后再除以43,得到的余数
8、在查出相对的编码字元,即为检查码字元。例如,要算出*S123$5*这笔资料的检查码,其计算过程如下:S的相对值为28 ;1的相对值为12的相对值为2;3的相对值为3$的相对值为39;5的相对值为5步骤二 将各相对值累加除以43累加相对值=28+1+2+3+39+5=7878/43=1 .35步骤三 检查出余数相对编码字元余数=35查表,得到相对值35之编码字元为Z故,检查码=Z,得含检查码在内的39码,为:*S123$5Z*39码的检查码查询表编码字元相对值编码字元相对值00F1511G1622H1733I1844J1955K2066L2177M2288N2399O24A10P25B11Q26
9、C12R27D13S28E14T29五、三九码的制作方法 1.在Excel中制作39码 (1)安装字体 3of9.TTF(网络上很多,可先下载该字体.即把3of9.ttf复制到C:WINDOWSFonts中) (2)在Excel单元格中输入39码,然后前后加*号,再选择字体(3 of 9 Barcode) 选择字体前如图:选择字体后如图:2. 在C#操作Excel处理三九码(code39)(1) 安装字体 3of9.TTF(2) 添加引用,如图(3) 编程:(只对在EXCEL实现三九码作简单介绍)using System;using System.Reflection;using System
10、.Runtime.InteropServices;using Microsoft.Office.Interop.Excel;namespace Excel / / Class1 / class Class1 / / Excel / STAThread public static void Main(string args) Application exc = new Application(); if (exc = null) Console.WriteLine(Error:Excel couldnt be started!); return; exc.Visible = true; Work
11、books workbooks = exc.Workbooks; _Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet); Sheets sheets = workbook.Worksheets; _Worksheet worksheet = (_Worksheet)sheets.get_Item(1); Range r = worksheet.get_Range(A1, A1); r.ColumnWidth = 30; r.Value2 = *12345ABCD*; r.Font.Name = 3 of 9 Barcode; 运行结果:3. 用.NET自带的报表服务System.Drawing.ReportDocument时,如果 2.(1),(2)然
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1