Python 生成条形码、二维码 (Code 128、EAN-13、QR code等)
条形码和二维码是现代信息交换和数据存储的重要工具,它们将信息以图形的形式编码,便于机器识别和数据处理,被广泛应用于物流、零售、医疗、教育等各领域。本文将介绍如何使用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 generate_and_save_barcode():
# 1. 创建条码配置
settings = BarcodeSettings()
settings.Type = BarCodeType.Code128
settings.Data = "XD00555"
settings.Code128SetMode = Code128SetMode.Auto
# 2. 生成条码(返回二进制数据)
generator = BarCodeGenerator(settings)
image_data = generator.GenerateImage() # 返回 bytes
# 3. 保存到文件
with open("Code128.png", "wb") as f:
f.write(image_data)
generate_and_save_barcode()
条码图:
Python 生成 EAN-13码
from spire.barcode import *
def generate_and_save_barcode():
# 1. 创建条码配置
settings = BarcodeSettings()
settings.Type = BarCodeType.EAN13
settings.Data = "5019632805254"
settings.Code128SetMode = Code128SetMode.Auto
# 2. 生成条码(返回二进制数据)
generator = BarCodeGenerator(settings)
image_data = generator.GenerateImage() # 返回 bytes
# 3. 保存到文件
with open("EAN13.png", "wb") as f:
f.write(image_data)
generate_and_save_barcode()
条码图:
Python 生成二维码 QR Code
from spire.barcode import *
def generate_and_save_barcode():
# 1. 创建条码配置
settings = BarcodeSettings()
settings.Type = BarCodeType.QRCode
# 设置背景颜色
settings.BackColor = Color.get_WhiteSmoke()
# 设置QR Code的编码模式
settings.QRCodeDataMode = QRCodeDataMode.Byte
# 设置纠错等级(ECL)
settings.QRCodeECL = QRCodeECL.M
# 设置是否在二维码底部显示文本
settings.ShowTextOnBottom = True
# 设置分辨率
settings.DpiX = 500
settings.DpiY = 500
# 设置二维码数据
settings.Data2D = "Hello, World"
# 2. 生成条码(返回二进制数据)
generator = BarCodeGenerator(settings)
image_data = generator.GenerateImage() # 返回 bytes
# 3. 保存到文件
with open("QRCode.png", "wb") as f:
f.write(image_data)
generate_and_save_barcode()
运行结果: