在一些生產製造行業條碼是必不可少的。比如,列印工作單、原材料出入庫、成品出庫發貨等都需要掃描條碼進行資料擷取。最近發現公司列印出的工作單上出現了條碼,列印工單的程式是用PHP寫的,於是乎看看原始碼是怎麼實現的。原來是通過一個產生Barcode的類將相應的資料轉給該程式並產生JPG檔案。
自己在網上搜了搜實現Barcode的其他方法,找到一個國外的開來源程式專門用來產生“一維條碼”。首先,複習一下條碼的相關知識。
條碼分類
一、按碼制分類
1. UPC碼
1973年,美國率先在國內的商業系統中應用於UPC碼之後加拿大也在商業系統中採用UPC碼。UPC碼是一種長度固定的連續型數字式碼制,其字元集為數字0~9。它採用四種元素寬度,每個條或空是1、2、3或4倍單位元素寬度。IPC碼有兩種類型,即UPC-A碼和UPC-E碼。
2. EAN碼
1977年,歐洲經濟共同體各國按照UPC碼的標準制定了歐洲物品編碼EAN碼,與UPC碼相容,而且兩者具有相同的符號體系。EAN碼的字元編號結構與UPC碼相同,也是長度固定的、連續型的數字式碼制,其字元集是數字0~9。它採用四種元素寬度,每個條或空是1、2、3或4倍單位元素寬度。EAN碼有兩種類型,即EAN-13碼和EAN-8碼。
3. 交叉25碼
交叉25碼是一種長度可變的連續型自校正數字式碼制,其字元集為數字0~9。採用兩種元素寬度,每個條和空是寬或窄元素。編碼字元個數為偶數,所有奇數位置上的資料以條編碼,偶數位置上的資料以空編碼。如果為奇數個資料編碼,則在資料前補一位0,以使資料為偶數個數位。
4. 39碼
39碼是第一個字母數字式碼制。1974年由Intermec公司推出。它是長度可比的離散型自校險字母數字式碼制。其字元集為數字0—9,26個大寫字母和7特殊字元(-、。、Space、/、%、¥),共43個字元。每個字元由9個元素組成,其中有5個條(2個寬條,3個窄條)和4個空(1個寬空,3個窄空),是一種離散碼。
5. 庫德巴碼
庫德巴碼(Code Bar)出現於1972年,是一種長度可變的連續型自校正數字式碼制。其字元集為數字0—9和6個特殊字元(-、:、/、。、+、¥),共16個字元。常用於倉庫、血庫和航空快遞包裹中。
6. 128碼
128碼出現於1981年,是一種長度可變的連續型自校正數字式碼制。它採用四種元素寬度,每個字元由3個條和3個空,共11個單元元素寬度, 又稱(11,3)碼。它由106個不,同條碼字元,每個條碼字元有三種含義不同的字元集,分別為A、B、C。它使用這3個交替的字元集可將128個ASCII碼編碼。
7. 93碼
93碼是一種長度可變的連續型字母數字式碼制。其字元集成為數字。0-9,26個大寫字母和7個特殊字元(-、。、Space、/、+、%、¥)以及4個控制字元。每個字元由3個條和3個罕,共9個元素寬度。
8. 49碼
49碼是一種多行的連續型、長度可變的字母數字式碼制。出現於1987年,主要用於小物品標籤上的符號。採用多種元素寬度。其字元集為數字0-9,26個大寫字母和7個特殊字元(-、。、Space、%、/、+、%、¥)、3個功能鍵(F1、 陀、F3)和3個變換字元,共49個字元。
9. 其他碼制
除上述碼外,還有其他的碼制,例如25碼出現於1977年,主要用於電子元器件標籤;矩陣25碼是11碼的變形;Nixdorf碼已被EAN碼所取代Plessey碼出現於1971年5月主要用於圖書館等。
二、按維數分類
1. 普通的一維條碼
普通的一維條碼自本問世以來,很快得到了普及並廣泛應用。但是由於一維條碼的資訊容量很小,如商品上的條碼僅能容13位的阿拉伯數字,更多的描述商品的資訊只能依賴資料庫的支援,離開了預先建立的資料庫,這種條碼就變成了無源之水,無本之木,因而條碼的應用範圍受到了一定的限制。
2. 二維條碼
除具有普通條碼的優點外,二維條碼還具有資訊容量大、可靠性高、保密防偽性強、易於製作、成本低等優點。<BR>美國Symbol公司於1991年正式推出名為PDF417的二維條碼,簡稱為PDF417條碼,即“攜帶型資料檔案”。FDF417條碼是一種高密度、高資訊含量的攜帶型資料檔案,是實現證件及卡片等大容量、高可靠性資訊自動儲存、攜帶並可用機器自動識讀的理想手段。
3. 多維條碼
進入20世紀80年代以來,人們圍繞如何提高條碼符號的資訊密度,進行了研究工作。多維條碼和集裝箱條碼成為研究、以展與應用的方向。<BR>資訊密度是描述條碼符號的一個重要參資料,即單位長度中可能編寫的字母個數,通常記作:字母個數/cm。影響資訊密度的主要因素是條、空結構和窄元系的寬度。<BR>128碼和93碼就是人們為提高密度而進行的成功的嘗試。128碼城1981年被推薦應用;而93碼於1982年投入使用。這兩種碼的符號密度均比39碼高將近30%。<BR>隨著條碼技術的發展和條碼三制的種類不斷增加,條碼的標準化顯得愈來愈重要。為此,曾先後制定了軍用標準1189;交叉25碼、39碼和Coda Bar碼ANSI標準MH10.8M等。同時,一些行業也開始建立行業標準,以適應發展的需要。此後,戴維·阿利爾又研製出49碼。這是一種非傳統的條碼符號,它比以往的條碼符號具有更高的密度。特德·威廉姆斯(Ted Williams)GFI988推出16K碼,該碼的結構類似於49碼,是一種比較新型的碼制,適用於雷射系統。
條碼執行個體
1. Codabar Manual Reference
- Supports: [0-9], [A-D], - $ : / . +
- Must start and end with a letter
- Contains an auto-checksum, no checksum number
2. Code 11 Manual Reference
- Supports: [0-9], -
- Rarely used
- Contains auto-checksum numbers
3. Code 39 Manual Reference
- Supports: [0-9], [A-Z], - . $ / + % [SPACE]
- Really used, many uses
- Contains a optional checksum
- Resulting barcode is pretty big
4. Code 39 Extended Manual Reference
- Supports: [0-9], [A-Z], - . $ / + % [SPACE] + ASCII 0-127
- The extension of this barcode is optional. You must specify your reader that you read Code 39 Extended.
5. Code 93 Manual Reference
- Supports: [0-9], [A-Z], - . $ / + % [SPACE] + ASCII 0-127
- Similar to Code 39 but less used
- Supports ASCII 0-127 and is not optional like the Code 39
- Bigger density
6. Code 128 Manual Reference
- Supports: [0-9], [a-zA-Z], tous les characteres
- Contains 3 tables to better encode data
- Groups numbers by two for a better compression
7. EAN-8 Manual Reference
- Supports: [0-9]
- Encodes 7 numbers and a checksum number
- It is the EAN-13 short version
- You have to get a number with a license to use in the public
8. EAN-13 Manual Reference
- Supports: [0-9]
- Encodes 12 numbers with a checksum number
- It is the UPC-A extension which adds the country code
- You have to get a number with a license to use in the public
9. ISBN-10 / ISBN-13 Manual Reference
- Supports: [0-9]
- Based on EAN-13, used for books
- You have to get a number with a license to use in the public
10. Interleaved 2 of 5 Manual Reference
- Supports: [0-9]
- Based on Standard 2 of 5
- Optional checksum number
11. Standard 2 of 5 Manual Reference
- Supports: [0-9]
- Hard to read for readers because really low density
- Optional checksum number
12. MSI Plessey Manual Reference
- Supports: [0-9]
- Formerly used for inventory
- Optional checksum number
13. UPC-A Manual Reference
- Supports: [0-9]
- Encoded like EAN-13
- Encodes 11 numbers with a checksum number
- The numbers depends on what you sell
- You have to get a number with a license to use in the public
14. UPC-E Manual Reference
- Supports: [0-9]
- Short version of UPC-A
- Encodes 7 numbers with a checksum number
- The numbers depends on what you sell
- You have to get a number with a license to use in the public
15. UPC Extension 2 Manual Reference
- Supports: [0-9]
- Contains 2 characters
- Indicates more information on the product
- Must be joined to a UPC or EAN symbol
16. UPC Extension 5 Manual Reference
- Supports: [0-9]
- Contains 5 characters
- Usually indicates the suggested price of the product
- Must be joined to a UPC or EAN symbol
17. PostNet Manual Reference
- Supports: [0-9]
- Contains either 5, 9 or 11 numbers
- Used to encode envelopes in United States
18. Other Manual Reference
- Create your own barcode
- Add the text you want
參考資料:http://www.barcodephp.com/1d/overview.php
待續……