Code128條形碼如何計算其寬度?如何得出其校驗位?162
發(fā)表時間:2022-04-11 19:28 Code128條形碼是一個非常高密的字母數(shù)字條碼,能夠存儲需要的編碼數(shù)據(jù),它可以編碼所有128個ASCII碼字符,它使用最少的空間。 在Code128符號體系中,每個數(shù)據(jù)字符編碼都是由11個黑或白模塊組成,這11個模塊由三個條和三個空來形成,條和空可以由1-4個模塊的寬度來組成。停止字符由13個模塊組成。 Code128碼符號包括一個靜止區(qū)(10倍X-尺寸 )、一個開始字符、編碼數(shù)據(jù)、一個檢測字符、停止字符和一個尾部的靜止區(qū)(10倍X-尺寸),為了獲得最佳的掃描效果(使用接觸式掃描器),靜止區(qū)至少要在6.35mm以上。 為了保證條形碼的可讀性(絕大都數(shù)條碼掃描器都可以識度),最小的X-尺寸為7.5mil,最小的條形碼高度是條形碼寬度的15%或者6.35mm以上。 有106個不同的3條/3空組合,106個組合中的任何一個都可以被分配為三個不同字符集含義之一,Code128的字符設(shè)置參見下面附錄。通過三個不同的開始字符來進行標識,STARTCodeA允許所有的鍵盤字符+控制字符和特殊字符進行編碼,STARTCodeB包括所有標準字母數(shù)字鍵盤字符+小寫字母和特殊字符,STARTCodeC包括一個100位數(shù)字(00~99),可用于編碼數(shù)字數(shù)據(jù)的密度壓縮。 在Code128條形碼內(nèi),可以通過特殊的字符代碼和SHIFT進行代碼集之間的轉(zhuǎn)移,轉(zhuǎn)移到指定的字符集。 FNC代碼定義為條碼掃描器的指示。FNC1是保留供將來使用。FNC2告訴讀取器去存儲讀取的數(shù)據(jù)和傳輸它。FNC3是保留讀碼器初始化和其他讀碼器功能。FNC4是保留為未來的應(yīng)用。 每個字符都有一個值,范圍從0到105,這個值被用來計算Code128條形碼的校驗字符。 校驗字符通過MOD103算法,下面舉例說明: 例子:BarCode 1 信息:StartB B a r C o d e 1 值:104 34 65 82 35 79 68 69 0 17 位置:- 1 2 3 4 5 6 7 8 9 計算:104+(34*1)+(65*2)+(82*3)+(35*4)+(79*5)+(68*6)+(69*7)+(0*8)+(17*9)=2093 2093/103=20余33 33=A 完整的條形碼信息:(Start B)BarCode 1(A)(STOP) 注意:當(dāng)你打印校驗字符“A”時,你需打印ASCII字符數(shù)65(而不是33),你必須增加32到校驗數(shù)上,然后找出打印的ASCII字符。比如說,你使用START A打印CodeA條碼,計算出的校驗數(shù)字是64,你可能會認為打印一個NULL字符,那你就錯了,你必須增加32得到一個96,你能夠打印出ASCII字符96(`字符)。 Code128條形碼的高度必須至少是條形碼寬度的0.15倍或者6.35mm,以兩個數(shù)值的較大者為準,Code128條形碼的總寬度由下面的公式得出: L=(11C+35)X (字母數(shù)字) ;L = (5.5C+35)X(數(shù)字僅使用CodeC) 這里: L=Code128條形碼的寬度(不包括靜止區(qū))(英寸為單位) C=數(shù)據(jù)字符、代碼字符和轉(zhuǎn)移字符的數(shù)量(不包括開始、停止、校驗字符,他們將被自動添加) X=X-尺寸(英寸為單位,比如,7mil條形碼的X-尺寸為0.007英寸) 下面使用三個例子,分別說明Code128條形碼長度的計算: 1、下圖條形碼通過Bartender軟件編輯,采用Code128A字符集,條形碼密度為16.39mil,字符數(shù)為7。 根據(jù)公式進行計算L=(11*7+35)*0.01639=1.83568英寸=46.6mm 根據(jù)公式計算的Code128條形碼寬度與軟件實際生成的條形碼寬度是一致的。 2、下圖條形碼通過Bartender軟件編輯,采用Code128C字符集,條形碼密度為16.39mil,字符數(shù)為10。 根據(jù)公式(全部為CodeC時的公式)進行計算L=(5.5*10+35)*0.01639=1.4751英寸=37.5mm 根據(jù)公式計算的Code128條形碼寬度與軟件實際生成的條形碼寬度是一致的。 采用Code128C時也可以采用2位解碼的方式,如上圖所示的1256742345,可以解碼為“12”“56”“74”“23”“45”總共5個字符。 根據(jù)公式進行計算L=(11*5+35)*0.01639=1.4751英寸=37.5mm,與使用另外一個公式的結(jié)果是一致的。 3、下圖條形碼通過Bartender軟件編輯,前面的小寫字母采用Code128B字符集,后面的數(shù)字采用Code128C字符集,中間使用了shift轉(zhuǎn)換字符,條形碼密度為16.39mil,字符數(shù)為10。 下面進行字符數(shù)統(tǒng)計:“abc”采用Code128B字符集,計算為3個字符,“6742345”采用Code128C字符集,計算為4個字符,中間轉(zhuǎn)換字符Shift計算為1個字符,總共為8個字符。 根據(jù)公式進行計算L=(11*8+35)*0.01639=2.01597英寸=51.2mm 根據(jù)公式計算的Code128條形碼寬度與軟件實際生成的條形碼寬度是一致的。 附錄:Code128條形碼字符表 下表顯示了三個不同的字符集,每個字符的十進制值是用來計算校驗字符。最后一列顯示的字符模式的條和空。數(shù)字顯示模塊的數(shù)量范圍內(nèi)給定的空間或酒吧。為了得到擴展ASCII十進制,添加32在第一列的十進制值。這里有一個很好的擴展ASCII表。請注意,Code128只能編碼英文字母。
|