條形碼(Barcode)是將寬度不等的多個黑條和空白,按照必定的編碼規則排列,用以表達一組信息的圖形標識符。經常使用於標示物品的生產國、製造廠家、商品名稱、生產日期、圖書分類號、郵件起止地點、類別、日期等信息,普遍應用於各個領域。常見的包括一維條碼(條碼)、二維條碼(二維碼)、彩色條碼,在具體碼制上可分爲多種不一樣類型的條碼,如UPC(統一產品代碼,只能以數字表示)、Code 3(能表示字母、數字和其它一些符號共43個字符)、Code 128(表示高密度數據,字符串可變長,符號內含校驗碼)、Codabar(庫德巴碼,以起始/終止符a,b,c d四個字符、數字0 - 9,字符$、+、- 組成,可變長度,沒有校驗位)、QR碼(呈正方形,常見以黑白兩色組成。) 、PDF417(多行組成的條形碼,可存儲大量數據)、複合條碼(新出現的碼制類型,由兩個很靠近的條碼符號組成,包含互相關聯的數據)等。如下內容,將介紹經過Java程序來建立、讀取條碼的方法。示例要點包括:html
使用工具:Free Spire.Barcode for Java (免費版)java
這裏使用的工具,支持多種條碼類型,包括條形碼,二維碼和郵政碼,多達38種條碼類型,如CODE 2五、CODABAR、CODE 十一、INTERLEAVED 2五、CODE 3九、CODE 39 EXTENDED、CODE 9三、CODE 93 EXTENDED、CODE 12八、EAN 八、EAN 1三、EAN 12八、EAN 1四、SCC 1四、SSCC 1八、ITF 1四、ITF 六、UPCA、UPCE、POST NET、SINGAPORE POST 4 STATE、PLANET、MSI、RSS 1四、RSS 14 TRUNCATED、RSS LIMITED、RSS EXPANDED、USPS、SWISS POST PARCEL、PZN、OPC、DEUTSCHE POST IDENTCODE、DEUTSCHE POST 、LEITCODE、ROYAL MAIL 4 STATE、DATA MATRIX、QR CODE、PDF 41七、PDF 417 MACRO等,可設置條碼顏色,邊框,邊距,寬度以及各類屬性,數據樣式等等。maven
Jar文件獲取及導入:工具
方法1:經過官網下載jar文件包。下載後,解壓文件,並將lib文件夾下的Spire.Barcode.jar文件導入到java程序。參考以下導入效果:編碼
方法2:可經過maven倉庫安裝導入。可參考導入方法。spa
import com.spire.barcode.BarCodeGenerator; import com.spire.barcode.BarCodeType; import com.spire.barcode.BarcodeSettings; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class CreateBarcode { public static void main(String[] args) throws IOException { BarcodeSettings settings = new BarcodeSettings();//建立BarcodeSettings實例 settings.setType(BarCodeType.Code_128);//指定條碼類型 settings.setData("123456789");//設置條碼數據 settings.setData2D("123456789");//設置條碼顯示數據 settings.setShowTextOnBottom(true);//設置數據文本顯示在條碼底部 settings.setX(0.8f);//設置黑白條寬度 settings.setImageHeight(50);//設置生成的條碼圖片高度 settings.setImageWidth(70);//設置生成的條碼圖片寬度 settings.hasBorder(true);//設置邊框可見 settings.setBorderColor(new Color(135,206,250));//設置條碼邊框顏色 settings.setBorderWidth(1);//設置條碼邊框寬度 settings.setBackColor(new Color(240,255,255));//設置條碼背景色 BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);//建立BarCodeGenerator實例 BufferedImage bufferedImage = barCodeGenerator.generateImage();//根據settings生成圖像數據,保存至BufferedImage實例 ImageIO.write(bufferedImage, "png", new File("CODE128.png"));//保存條碼爲PNG圖片 System.out.println("Complete!"); } }
條碼建立效果:code
import com.spire.barcode.*; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class CreateQR { public static void main(String[] args) throws IOException { BarcodeSettings settings = new BarcodeSettings();//建立BarcodeSettings實例 settings.setType(BarCodeType.QR_Code);//設置條碼類型爲QR二維碼 settings.setData("Hello 123456789");//設置二維碼數據 settings.setData2D("Hello 123456789");//設置二維碼顯示數據 settings.setQRCodeDataMode(QRCodeDataMode.Alpha_Number);//設置數據類型 settings.setX(1.0f);//設置二維碼模型寬度 settings.setQRCodeECL(QRCodeECL.H);//設置二維碼糾錯級別 settings.setImageWidth(50);//設置生成的二維碼圖片寬度 settings.setImageHeight(50);//設置生成的二維碼圖片高度 settings.hasBorder(false);//設置二維碼邊框不可見 BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);//建立BarCodeGenerator實例 BufferedImage bufferedImage = barCodeGenerator.generateImage();//根據settings生成圖像數據,保存至BufferedImage實例 ImageIO.write(bufferedImage, "png", new File("QRCode.png"));//保存二維碼圖片爲PNG格式 System.out.println("Complete!"); } }
二維碼建立效果:htm
import com.spire.barcode.*; public class ScanBarcode { public static void main(String[] args) throws Exception{ //使用scan方法從圖片中識別Code 128條形碼 String[] datas = BarcodeScanner.scan("CODE128.png", BarCodeType.Code_128); System.out.print(datas[0]); } }
識別結果:blog
(本文完)圖片
轉載請註明出處!!