在自动化生产、物流配送、商超系统等日常业务中,条形码已成为数据快速读取与追踪的核心方式。相比手工设计,使用 Python 编程生成条形码图片,能显著提升效率并支持批量处理。本文将介绍如何使用Python生成条形码,并通过实战代码讲解如何设置条码类型、编码内容、样式属性,以及保存图像。
- 用Python生成指定类型的条形码图像
- 批量生成多个条形码
- 支持的条码类型
本文使用的是Free Spire.Barcode for Python,安装命令:pip install spire.barcode.free
。
用Python生成指定类型的条形码
我们可以用该库生成各种类型的条形码,包括Code 128、UPC等。这里我们以Code 128条形码为例。Code 128是一种高密度的线性条形码类型,支持全ASCII字符集,非常适合库存编号、物流单号等信息编码。
生成条形码的基本步骤如下:
- 导入相关模块
- 创建条码设置对象
BarcodeSettings()
并配置类型与数据 - 使用
BarCodeGenerator()
实例生成图像 将图像保存为本地PNG文件
代码示例from spire.barcode import BarcodeSettings, BarCodeType, BarCodeGenerator, Code128SetMode, FontStyle, Color # 初始化条码设置 settings = BarcodeSettings() settings.Type = BarCodeType.Code128 # 设置条码类型 settings.Data = "ABC123456789" # 设置编码内容 settings.Code128SetMode = Code128SetMode.Auto # 使用自动字符集 settings.ShowTextOnBottom = True # 显示底部文本 settings.BottomText = "Code 128 示例" # 设置底部文字 settings.SetTextFont("Arial", 12.0, FontStyle.Regular) settings.ShowBottomText = True # 显示底部文字 settings.BackColor = Color.get_Beige() # 设置背景颜色 # 生成条码图像 generator = BarCodeGenerator(settings) barcode_image = generator.GenerateImage() # 保存为本地PNG文件 with open("output/code128.png", "wb") as f: f.write(barcode_image)
生成效果图如下:
批量生成多个条形码
在一些应用场景中,可能需要一次性生成大量条形码,例如为每件商品或每个订单生成唯一编号。以下示例演示如何使用循环实现批量条码创建:
from spire.barcode import BarcodeSettings, BarCodeType, BarCodeGenerator
# 待编码的数据列表
barcode_list = ["ITEM001", "ITEM002", "ITEM003"]
# 遍历生成条码
for data in barcode_list:
settings = BarcodeSettings()
settings.Type = BarCodeType.Code39 # 可根据需求修改为其他类型
settings.Data = data
generator = BarCodeGenerator(settings)
barcode_image = generator.GenerateImage()
with open(f"output/{data}.png", "wb") as f:
f.write(barcode_image)
每条数据将分别生成对应的PNG图片,自动命名为数据内容,适合批量标识系统。
支持的条码类型
Spire.Barcode for Python 支持多种条形码与二维码类型,包括但不限于:
- 1D线性条码:Code 128, Code 39, EAN-13, UPC-A, Codabar 等
- 2D二维码:QRCode, DataMatrix, PDF417, Aztec 等
- 邮政与堆叠码
详细条码类型支持情况可参考Spire.Barcode for Python官方文档。
通过以上方法,我们可以灵活地在 Python 项目中集成条形码生成功能,实现自动化批处理、个性化编码与图像输出。无论是小型应用还是大规模部署,Spire.Barcode for Python 都能提供高质量、易上手的条码解决方案。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。