Python 生成條形碼、二維碼 (Code 128、EAN-13、QR code等)

E-iceblue發表於2024-07-15

條形碼和二維碼是現代資訊交換和資料儲存的重要工具,它們將資訊以圖形的形式編碼,便於機器識別和資料處理,被廣泛應用於物流、零售、醫療、教育等各領域。本文將介紹如何使用Python快速生成各種常見的條形碼如Code 128、EAN-13,以及生成二維碼

Python條碼庫

本文需要用到 Spire.Barcode for Python 庫,該庫支援生成、識別各類一維和二維條碼,包括 EAN, UPC, Code128, Code39, QR Code, Data Matrix 等,滿足各種應用需求。此外還提供了豐富的介面來自定義條碼圖片的邊框樣式、顏色、邊距等屬性。
該Python條碼生成庫可以透過 pip輕鬆安裝:

pip install Spire.Barcode

生成條碼的類、方法簡介

要使用Spire.Barcode for Python庫生成條碼,主要會用到以下類、屬性、方法:

  1. BarcodeSettings 類:用於條碼生成的各項設定。支援設定條碼型別、資料、背景色、寬高度、邊距、解析度等。
  2. BarcodeSettings.Type 屬性:設定條碼型別。
  3. BarcodeSettings.Data 屬性:設定條碼資料。
  4. BarcodeSettings.Data2D 屬性:設定二維碼文字。
  5. BarcodeGenerator 類:用於條碼渲染。
  6. BarcodeGenerator.GenerateImage() 方法:用於生成條碼圖片。

Python 生成 Code128碼

from spire.barcode import *

def WriteAllBytes(fname: str, data):
    with open(fname, "wb") as fp:
        fp.write(data)
    fp.close()

# 建立BarcodeSettings物件
barcodeSettings = BarcodeSettings()

# 將條碼型別設定為Code128
barcodeSettings.Type = BarCodeType.Code128

# 設定條碼資料
barcodeSettings.Data = "XD00555"

# 設定Code128條形碼的程式碼集
barcodeSettings.Code128SetMode = Code128SetMode.Auto

# 建立BarCodeGenerator物件
barCodeGenerator = BarCodeGenerator(barcodeSettings)

# 生成條碼圖片
barcodeimage = barCodeGenerator.GenerateImage()
WriteAllBytes("Code128.png", barcodeimage)

條碼圖:

Python 生成 EAN-13碼

from spire.barcode import *

def WriteAllBytes(fname: str, data):
    with open(fname, "wb") as fp:
        fp.write(data)
    fp.close()

# 建立BarcodeSettings物件
barcodeSettings = BarcodeSettings()

# 將條碼型別設定為EAN13
barcodeSettings.Type = BarCodeType.EAN13

# 設定條碼資料
barcodeSettings.Data = "5019632805254"

# 建立BarCodeGenerator物件
barCodeGenerator = BarCodeGenerator(barcodeSettings)

# 生成條碼圖片
barcodeimage = barCodeGenerator.GenerateImage()
WriteAllBytes("EAN13.png", barcodeimage)

條碼圖:

Python 生成二維碼 QR Code

from spire.barcode import *

def WriteAllBytes(fname:str,data):
    fp = open(fname,"wb")
    fp.write(data)
    fp.close()

# 建立BarcodeSettings物件
barcodeSettings = BarcodeSettings()

# 將條碼型別設定為QR Code
barcodeSettings.Type = BarCodeType.QRCode

# 設定背景顏色
barcodeSettings.BackColor = Color.get_WhiteSmoke()

# 設定QR Code的編碼模式
barcodeSettings.QRCodeDataMode = QRCodeDataMode.Byte

# 設定糾錯等級(ECL)
barcodeSettings.QRCodeECL = QRCodeECL.M

# 設定是否在二維碼底部顯示文字
barcodeSettings.ShowTextOnBottom = True

# 設定解析度
barcodeSettings.DpiX = 500
barcodeSettings.DpiY = 500

# 設定二維碼資料
barcodeSettings.Data2D = "Hello, World"

# 建立BarCodeGenerator物件
barCodeGenerator = BarCodeGenerator(barcodeSettings)

# 生成二維碼圖片
barcodeimage = barCodeGenerator.GenerateImage()
WriteAllBytes("QRCode.png", barcodeimage)

條碼圖:


– 測試過程中遇到的問題可前往論壇交流。

– 對於所生成條碼上的水印,可以由此申請1個月試用授權來移除:https://www.e-iceblue.cn/misc/temporary-license.html

相關文章