在自动化生产、物流配送、商超系统等日常业务中,条形码已成为数据快速读取与追踪的核心方式。相比手工设计,使用 Python 编程生成条形码图片,能显著提升效率并支持批量处理。本文将介绍如何使用Python生成条形码,并通过实战代码讲解如何设置条码类型、编码内容、样式属性,以及保存图像。

  • 用Python生成指定类型的条形码图像
  • 批量生成多个条形码
  • 支持的条码类型

本文使用的是Free Spire.Barcode for Python,安装命令:pip install spire.barcode.free

用Python生成指定类型的条形码

我们可以用该库生成各种类型的条形码,包括Code 128、UPC等。这里我们以Code 128条形码为例。Code 128是一种高密度的线性条形码类型,支持全ASCII字符集,非常适合库存编号、物流单号等信息编码。
生成条形码的基本步骤如下:

  1. 导入相关模块
  2. 创建条码设置对象BarcodeSettings()并配置类型与数据
  3. 使用BarCodeGenerator()实例生成图像
  4. 将图像保存为本地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 都能提供高质量、易上手的条码解决方案。


大丸子
78 声望8 粉丝