條形碼和二維碼是現代資訊交換和資料儲存的重要工具,它們將資訊以圖形的形式編碼,便於機器識別和資料處理,被廣泛應用於物流、零售、醫療、教育等各領域。本文將介紹如何使用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庫生成條碼,主要會用到以下類、屬性、方法:
- BarcodeSettings 類:用於條碼生成的各項設定。支援設定條碼型別、資料、背景色、寬高度、邊距、解析度等。
- BarcodeSettings.Type 屬性:設定條碼型別。
- BarcodeSettings.Data 屬性:設定條碼資料。
- BarcodeSettings.Data2D 屬性:設定二維碼文字。
- BarcodeGenerator 類:用於條碼渲染。
- 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