jQuery Barcode 是一個用來建立條形碼的 jQuery 插件。java
首先介紹下條形碼的原理先: 條形碼技術最先產生在風聲鶴唳的二十年代,誕生於Westinghouse的實驗室裏。一位名叫John Kermode性格古怪的發明家「異想天開」地想對郵政單據實現自動分檢,那時候對電子技術應用方面的每個設想都令人感到很是新奇。 他的想法是在信封上作條碼標記,條碼中的信息是收信人的地址,就象今天的郵政編碼。爲此Kermode發明了最先的條碼標識,設計方案很是的簡單 (注:這種方法稱爲模塊比較法),即一個「條」表示數字「1」,二個「條」表示數字「2」,以次類推。而後,他又發明了由基本的元件組成的條碼識讀設備: 一個掃描器(可以發射光並接收反射光);一個測定反射信號條和空的方法,即邊緣定位線圈;和使用測定結果的方法,即譯碼器。 Kermode的掃描器利用當時新發明的光電池來收集反射光。「空」反射回來的是強信號,「條」反射回來的是弱信號。與當今高速度的電子元氣件應 用不一樣的是,Kermode利用磁性線圈來測定「條」和「空」。就象一個小孩將電線與電池鏈接再繞在一顆釘子上來夾紙。Kermode用一個帶鐵芯的線圈 在接收到「空」的信號的時候吸引一個開關,在接收到「條」的信號的時候,釋放開關並接通電路。所以,最先的條碼閱讀器噪音很大。開關由一系列的繼電器控 制,「開」和「關」由打印在信封上「條」的數量決定。經過這種方法,條碼符號直接對信件進行分檢。 此後不久, Kermode的合做者Douglas Young,在Kermode碼的基礎上做了些改進。 Kermode碼所包含的信息量至關的低,而且很難編出十個以上的不一樣代碼。而Young碼使用更少的條,可是利用條之間空的尺寸變化,就象今天 的UPC條碼符號使用四個不一樣的條空尺寸。新的條碼符號可在一樣大小的空間對一百個不一樣的地區進行編碼,而Kermode碼只能對十個不一樣的地區進行編 碼。 直到1949年的專利文獻中才第一次有了Norm Woodland和Bernard Silver發明的全方位條形碼符號的記載,在這以前的專利文獻中始終沒有條形碼技術的記錄,也沒有投入實際應用的先例。Norm Woodland和Bemard Silver的想法是利用Kermode和YOung的垂直的「條」和「空」,並使之彎曲成環狀,很是象射箭的靶子。這樣掃描器經過掃描圖形的中心,可以 對條形碼符號解碼,無論條形碼符號方向的朝向。 在利用這項專利技術對其進行不斷改進的過程當中,一位科幻小說做家Isaac-Azimov在他的「裸露的太陽」一書中講述了使用信息編碼的新方法 實現自動識別的事例。那時人們以爲此書中的條形碼符號看上去象是一個方格子的棋盤,可是今天的條形碼專業人士立刻會意識到這是一個二維矩陣條形碼符號。雖 然此條形碼符號沒有方向、定位和定時,但很顯然它表示的是高信息密度的數字編碼。 直到1970年Iterface Mechanisms公司開發出「二維碼」以後,纔有了價格適於銷售的二維矩陣條碼的打印和識讀設備。那時二維矩陣條形碼用於報社排版過程的自動化。二維 矩陣條形碼印在紙帶上,由今天的一維CCD掃描器掃描識讀。CCD發出的光照在紙帶上,每一個光電池對準紙帶的不一樣區域。每一個光電池根據紙帶上印刷條碼與否 輸出不一樣的圖案,組合產生一個高密度信息圖案。用這種方法可在相同大小的空間打印上一個單一的字符,做爲早期Kermode碼之中的一個單一的條。定時信 息也包括在內,因此整個過程是合理的。當第一個系統進入市場後,包括打印和識讀設備在內的全套設備大約要5000美圓。 此後不久,隨着LED(發光二極管)、微處理器和激光二極管的不斷髮展,迎來了新的標識符號(象徵學)和其應用的大爆炸,人們稱之爲「條碼工 業」。今天不多能找到沒有直接接觸過即快又準的條形碼技術的公司或我的。因爲在這一領域的技術進步與發展很是迅速,而且天天都有愈來愈多的應用領域被開 發,用不了多久條形碼就會象燈泡和半導體收音機同樣普及,將會使咱們每個人的生活都變得更加輕鬆和方便。 條形碼技術的優勢 條形碼是迄今爲止最經濟、實用的一種自動識別技術。條形碼技術具備如下幾個方面的優勢 A.輸入速度快:與鍵盤輸入相比,條形碼輸入的速度是鍵盤輸入的5倍,而且能實現"即時數據輸入"。 B.可靠性高:鍵盤輸入數據出錯率爲三百分之一,利用光學字符識別技術出錯率爲萬分之一,而採用條形碼技術誤碼率低於百萬分之一。 C.採集信息量大:利用傳統的一維條形碼一次可採集幾十位字符的信息,二維條形碼更能夠攜帶數千個字符的信息,並有必定的自動糾錯能力。 D.靈活實用:條形碼標識既能夠做爲一種識別手段單獨使用,也能夠和有關識別設備組成一個系統實現自動化識別,還能夠和其餘控制設備聯接起來實現自動化管理。 另外,條形碼標籤易於製做,對設備和材料沒有特殊要求,識別設備操做容易,不須要特殊培訓,且設備也相對便宜。 編碼規則 惟一性:同種規格同種產品對應同一個產品代碼,同種產品不一樣規格應對應不一樣的產品代碼。根據產品的不一樣性質,如:重量、包裝、規格、氣味、顏色、形狀等等,賦予不一樣的商品代碼。 永久性:產品代碼一經分配,就再也不更改,而且是終身的。當此種產品再也不生產時,其對應的產品代碼只能擱置起來,不得重複起用再分配給其它的商品。 無含義:爲了保證代碼有足夠的容量以適應產品頻繁的更新換代的須要,最好採用無含義的順序碼。 條形碼的碼制區別 UPC:(統一產品代碼) 只能表示數字有A、B、C、D、E四個版本 版本 A - 12 位數字 版本 E - 7 位數字 最後一位爲校驗位 大小是寬1.5" 高1 " ,並且背景要與清晰 主要使用於美國和加拿大地區,用於工業、醫藥、倉庫等部門。當UPC 做爲十二位進行解碼時,定義以下: 第一位 = 數字標識 (已經由UCC(統一代碼委員會)所創建). 第2-6位 = 生產廠家的標識號(包括第一位) 第7-11 = 惟一的廠家產品代碼 第12位 = 校驗位(used for error detection) Code 3 of 9 : 能表示字母、數字和其它一些符號共43個字符:A -Z,0 - 9,-.$/+%,pace 條形碼的長度是可變化的,一般用「*」號做爲起始、終止符校驗碼不用代碼密度介於3 - 9.4個字符/每英寸,空白區是窄條的10倍,用於工業、圖書、以及票證自動化管理上。 Code 128: 表示高密度數據, 字符串可變長,符號內含校驗碼,有三種不一樣版本: A, B, and C 可用128個字符分別在 A, B, or C 三個字符串集合中,用於工業、倉庫、零售批發。 Interleaved 2-of-5 (I2 of 5): 只能表示數字0 -9 可變長度,連續性條形碼,全部條與空都表示代碼,第一個數字由條開始,第二個數字由空組成 空白區比窄條寬10倍,應用於商品批發、倉庫、機場、生產/包裝識別、工業中,條形碼的識讀率高,可適用於固定掃描器可靠掃描,在全部一維條形碼中的密度 最高。 Codabar(庫德巴條形碼): 可表示數字0 - 9,字符$、+、 -、還有隻能用做起始/終止符的a, b, c d四個字符,可變長度,沒有校驗位,應用於物料管理、圖書館、血站和當前的機場包裹發送中,空白區比窄條寬10,非連續性條形碼,每一個字符表示爲4條3空。 PDF417 (二維碼): 多行組成的條形碼,不須要鏈接一個數據庫,自己可存儲大量數據,應用於:醫院、駕駛證、物料管理、貨物運輸,當條形碼受必定破壞時,錯誤糾正能使 條形碼能正確解碼PDF417, 是Symbol科技公司於1990研製產品。它是一個多行、連續性、可變長、包含大量數據的符號標識。每一個條形碼有3 - 90行,每一行有一個起始部分、數據部分、終止部分。它的字符集包括全部128個字符,最大數據含量是1850個字符。 發現有個不錯的網站,使用了JQUERY去產生二維碼,地址是: http://barcode-coder.com/en/ 另外若是JAVA方面,也能夠用生成servlet的方法去生成,用的比較多的是: barbecue和barcode4j,轉一段說明: 一、 google或者擺渡一下barcode4j要用的東東,下載壓縮包barcode4j-2.0alpha2-bin.zip和barcode4j-2.0alpha2-src.zip。 二、 解壓barcode4j-2.0alpha2-bin.zip這個包,在build目錄下有barcode4j.jar,在lib目錄下有avalon- framework-4.2.0.jar, 將barcode4j.jar和avalon-framework-4.2.0.jar添加到項目的lib中,刷新工程,而後在項目配置中將這兩個jar 包添加到classpath裏面去。 三、 解壓將barcode4j-2.0alpha2-src.zip,將src\java\org\krysalis\barcode4j\servlet 目錄下的BarcodeServlet.java類的代碼拷出來,修改默認的圖片顯示方式,BarcodeServlet.java第168行的默認圖片 顯示格式改爲jpeg(由於不是全部的瀏覽器都支持svg格式,也不是全部的瀏覽者都願意給本身的瀏覽器加一個這樣的插件) 四、 將如下這段servlet配置在web.xml中 <servlet> <servlet-name>BarcodeServlet</servlet-name> <servlet-class>com.yourname.BarcodeServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>BarcodeServlet</servlet-name> <url-pattern>/barcode</url-pattern> </servlet-mapping> 四、 在頁面中添加<img src="<%=request.getContextPath() %>/barcode?msg=12345678" height="50px" width=130px/> 五、 查看該頁面就能夠發現條形碼爲「12345678」的圖片了,固然了圖片大小就本身設置了。