聲明:轉載為個人學習收藏,如有侵權,請及時聯系本人刪除,轉載地址:https://www.cnblogs.com/MariaWang/p/10837641.html
條形碼是一種可視化、機器可讀的數據,這些數據通常描述了攜帶該條碼的物品的相關信息。條形碼已經廣泛被應用在商品流通,圖書管理,郵政管理和銀行系統等領域。在這篇文章中,將介紹如何生成和掃描一些常見的一維和二維條形碼。
所需工具:
- Free Spire.Barcode for Java 1.3(免費版)
- Intellij IDEA
Jar包文件導入:
- 方式(一):首先,官網獲取jar包
Step 1: 下載Jar包之后解壓,進入“Project Structure” 界面。(以下是三種在IDEA中快速打開Project Structure界面的方式,可任意選擇一種方式)

Step 2:按以下操作步驟進行導入。
① 選擇“Modules”—“Dependencies”,添加外置jar包;② 進入"Attach File or Directories"界面選擇jar文件路徑,然后點擊“OK”;③ 勾選jar路徑選項,點擊”OK”/”Apply”;④ 導入完成。如下圖:

- 方式(二):使用Maven配置導包。可參考導入方法(http://www.e-iceblue.cn/licensing/install-spirepdf-for-java-from-maven-repository.htm)。
下面是免費版本支持的條形碼類型列表:

P.S. 更多條形碼類型,請參考使用Spire.Barcode for Java 商業版。
Barcode生成:
生成條形碼涉及到兩個重要的類,一個是BarcodeSettings,另一個是BarcodeCenerator。BarcodeSettings是用來定制條形碼的特定類型,數據,大小,顏色等。BarcodeCenerator以BarcodeSettings為基礎,用來創建圖像數據。上表所支持的部分條形碼的生成如下所示:
Codebar:
public class CODABAR {
public static void main(String[] args) throws Exception {
//創建BarcodeSettings實例
BarcodeSettings settings = new BarcodeSettings();
//設置條形碼數據
settings.setData("2030405060");
//設置符號屬性
settings.setType(BarCodeType.CODABAR);
//設置底部顯示文本
settings.setShowTextOnBottom(true);
//設置邊框可見
settings.hasBorder(true);
//設置CodabarStartChar和CodabarStopChar
settings.setCodabarStartChar(CodabarChar.B);
settings.setCodabarStopChar(CodabarChar.D);
//創建條形碼生成器對象
BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);
//從條形碼生成器中獲取圖像
BufferedImage bufferedImage = barCodeGenerator.generateImage();
//保存圖像
ImageIO.write(bufferedImage,"png",new File("CODABAR.png"));
}
}
運行效果:

Code11:
public class CODE_11 {
public static void main(String[] args) throws IOException {
//創建BarcodeSettings實例
BarcodeSettings settings = new BarcodeSettings();
//設置條形碼數據
settings.setData("12345-67890");
//設置符號屬性
settings.setType(BarCodeType.CODE_11);
//設置底部文本
settings.setShowTextOnBottom(true);
//設置邊框可見
settings.hasBorder(true);
//創建條碼生成器對象
BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);
//從條碼生成期中獲取圖像
BufferedImage bufferedImage = barCodeGenerator.generateImage();
//保存圖像
ImageIO.write(bufferedImage,"png",new File("CODE_11.png"));
}
}
運行效果:

Code 39:
public static void main(String[] args) throws IOException {
//創建BarcodeSettings
BarcodeSettings settings = new BarcodeSettings();
//設置條形碼數據
settings.setData("ABC 123456789");
//設置符號屬性
settings.setType(BarCodeType.CODE_39);
//在底部設置顯示文本位置
settings.setShowTextOnBottom(true);
//設置邊框可見
settings.hasBorder(true);
//創建條形碼生成器實例
BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);
//從條形碼生成器中獲取圖像
BufferedImage bufferedImage = barCodeGenerator.generateImage();
//保存圖像
ImageIO.write(bufferedImage,"png",new File("CODE_39.png"));
}
運行效果:

Code 128:
public class CODE_128 {
public static void main(String[] args) throws IOException {
//創建BarcodeSettings
BarcodeSettings settings = new BarcodeSettings();
//設置條形碼數據
settings.setData("ABCD 12345 abcd");
//設置符號屬性
settings.setType(BarCodeType.CODE_128);
//在底部設置顯示文本位置
settings.setShowTextOnBottom(true);
//設置邊界可見
settings.hasBorder(true);
//創建條形碼生成器實例
BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);
//從條形碼生成器獲取圖像
BufferedImage bufferedImage = barCodeGenerator.generateImage();
//保存圖像
ImageIO.write(bufferedImage,"png",new File("CODE_128.png"));
}
運行效果

QR_Code:
public class QR_CODE {
public static void main(String[] args) throws IOException {
//創建BarcodeSettings
BarcodeSettings settings = new BarcodeSettings();
//設置條形碼數據
settings.setData("ABC 123456789");
//設置符號屬性
settings.setType(BarCodeType.QR_CODE);
//在底部設置ShowText位置
settings.setShowTextOnBottom(true);
//設置邊框是可見的
settings.hasBorder(true);
//創建BarCodeGenerator實例
BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);
//從條形碼生成器獲取圖像
BufferedImage bufferedImage = barCodeGenerator.generateImage();
//保存圖像
ImageIO.write(bufferedImage,"png",new File("QR_CODE.png"));
}
}
運行效果:

Barcode掃描:
下面我們將嘗試將將幾個條形碼的合集放在一起掃描,使用BarcodeScanner 類的scan()方法讀取多個條形碼數據。圖像和代碼如下所示:

public class Scan {
public static void main(String[] args) throws Exception {
//從要掃描的圖像中獲取信息
String[] s= BarcodeScanner.scan("C:\\Users\\Administrator\\Desktop\\Barcode.png");
for (int i=0;i< s.length ;i++){
System.out.println(s[i]);
}
}
}
運行效果:
