條形碼Code93程序設計
一.了解一下CODE93的發(fā)展:
1.Code 93於1982年,基於code 39之上而設計.
2.Code93比Code39能夠編碼更大的字符集,並且擁有更高的數(shù)據(jù)容量.
3.Code 93設計來編碼字母和數(shù)字混合信息.
4.Code 93需要兩個校驗碼.
二.CODE93的組成部分
1.所能表示的數(shù)據(jù)范圍:
字母:A-Z
數(shù)據(jù):0-9
符號:空格、. 、% 、 contentnbsp; 、+ 、– 、/
控制碼: contentnbsp; 、+ 、– 、/
起訖碼: START : "101011110"; STOP = "1010111101"
三.CODE93的特點
1.可用控制碼與其它與其他字母或符號組合可變成FULL ASSIC II字母
2.有二個檢查碼”C”和”K”,掃碼器讀取時并不輸出,只在掃碼器內(nèi)部檢查.
3.檢驗碼的計算方法:
a.先檢查出資料對應的碼值
b.檢查碼C從資料的最右邊一位開始,用1-20的順序排列,若超過20位,則從頭開始
c.檢查碼K從資料的C位開始,用1-15的順序排列,若超過15位則從頭開始.
1*3+2*9+3*38+4*14+5*13+6*24+7*12=484 C=484÷47=14 則C=14=E(對應值) K的值的計算同C
四.條形碼的基本組成
五.程序編碼
CODE93碼字符集碼表
view plaincopy to clipboardprint?
code0["0"] = "100010100"; code0["1"] = "101001000"; code0["2"] = "101000100"; code0["3"] = "101000010"; code0["4"] = "100101000"; code0["5"] = "100100100"; code0["6"] = "100100010"; code0["7"] = "101010000"; code0["8"] = "100010010"; code0["9"] = "100001010"; code0["A"] = "110101000"; code0["B"] = "110100100"; code0["C"] = "110100010"; code0["D"] = "110010100"; code0["E"] = "110010010"; code0["F"] = "110001010"; code0["G"] = "101101000"; code0["H"] = "101100100"; code0["I"] = "101100010"; code0["J"] = "100110100"; code0["K"] = "100011010"; code0["L"] = "101011000"; code0["M"] = "101001100"; code0["N"] = "101000110"; code0["O"] = "100101100"; code0["P"] = "100010110"; code0["Q"] = "110110100"; code0["R"] = "110110010"; code0["S"] = "110101100"; code0["T"] = "110100110"; code0["U"] = "110010110"; code0["V"] = "110011010"; code0["W"] = "101101100"; code0["X"] = "101100110"; code0["Y"] = "100110110"; code0["Z"] = "100111010"; code0["-"] = "100101110"; code0["."] = "111010100"; code0[" "] = "111010010"; code0["___FCKpd___1quot;] = "111001010"; code0["/"] = "101101110"; code0["+"] = "101101110"; code0["%"] = "110101110"; code0["SHIFT1"] = "100100110"; code0["SHIFT2"] = "111011010"; code0["SHIFT3"] = "111010110"; code0["SHIFT4"] = "100110010"; code0["START"] = "101011110"; code0["STOP"] = "1010111101";
code0["0"] = "100010100"; code0["1"] = "101001000"; code0["2"] = "101000100"; code0["3"] = "101000010"; code0["4"] = "100101000"; code0["5"] = "100100100"; code0["6"] = "100100010"; code0["7"] = "101010000"; code0["8"] = "100010010"; code0["9"] = "100001010"; code0["A"] = "110101000"; code0["B"] = "110100100"; code0["C"] = "110100010"; code0["D"] = "110010100"; code0["E"] = "110010010"; code0["F"] = "110001010"; code0["G"] = "101101000"; code0["H"] = "101100100"; code0["I"] = "101100010"; code0["J"] = "100110100"; code0["K"] = "100011010"; code0["L"] = "101011000"; code0["M"] = "101001100"; code0["N"] = "101000110"; code0["O"] = "100101100"; code0["P"] = "100010110"; code0["Q"] = "110110100"; code0["R"] = "110110010"; code0["S"] = "110101100"; code0["T"] = "110100110"; code0["U"] = "110010110"; code0["V"] = "110011010"; code0["W"] = "101101100"; code0["X"] = "101100110"; code0["Y"] = "100110110"; code0["Z"] = "100111010"; code0["-"] = "100101110"; code0["."] = "111010100"; code0[" "] = "111010010"; code0["___FCKpd___1quot;] = "111001010"; code0["/"] = "101101110"; code0["+"] = "101101110"; code0["%"] = "110101110"; code0["SHIFT1"] = "100100110"; code0["SHIFT2"] = "111011010"; code0["SHIFT3"] = "111010110"; code0["SHIFT4"] = "100110010"; code0["START"] = "101011110"; code0["STOP"] = "1010111101"; CODE93編碼
view plaincopy to clipboardprint?
#region Encode barcode string
///
/// 對條碼的值進行編碼
///
private void EncodeBarcodeValue()
{
try
{
String str = code.ToUpper();
strLength = str.Length; //起始碼
encodedString = code0["START"]; //與碼表值進行對應
for (int i = 0; i < strLength; i++)
{
encodedString += code0[str[i].ToString()];
} //計算出CK的值
encodedString += GetCheckC_KValue();
//結(jié)束碼
encodedString += code0["STOP"];
}
catch
{
throw new Exception("條碼的值錯誤請檢查!");
}
}
#endregion
#region Encode barcode string
///
/// 對條碼的值進行編碼
///
private void EncodeBarcodeValue()
{
try
{
String str = code.ToUpper();
strLength = str.Length; //起始碼
encodedString = code0["START"]; //與碼表值進行對應
for (int i = 0; i < strLength; i++)
{
encodedString += code0[str[i].ToString()];
} //計算出CK的值
encodedString += GetCheckC_KValue();
//結(jié)束碼
encodedString += code0["STOP"];
}
catch
{
throw new Exception("條碼的值錯誤請檢查!");
}
}
#endregion經(jīng)過編碼后encodedString里所對應的內(nèi)容就是條碼資料所對應的編碼,接下下就是用做圖函數(shù),將一個個的畫出來即可,這樣一個CODE39碼程序就完成了
- 條碼打印機亂碼是什么原因 2013/7/4
- 上海包裝條碼打印機標簽印刷設備展覽會 2013/7/4
- 古巴雪茄包裝采用全新的標簽和條形碼技術 2013/7/4
- 廣西陽朔旅游景區(qū)采用條碼電子門票 2013/7/4
- 新聞出版總署網(wǎng)上發(fā)放條碼62465個 2013/7/4
- 中考考試答題卡采用條形碼 2013/7/4
- 醫(yī)院醫(yī)療機構(gòu)怎樣打印腕帶條碼 2013/7/4
- 談談物流快遞不快問題出在哪里 2013/7/4
- 數(shù)碼打印技術在煙草行業(yè)的應用 2013/7/4
- 杭州老人采用人體條形碼計算機技術 2013/7/4
推薦:閱讀了本文的人,還閱讀了如下部分相關內(nèi)容: