python生成带自定义标签的条形码

这里作者使用python-barcode库生成条形码, 但似乎不支持直接生成带标签的条形码, 所以我是先生成的条形码, 然后将条形码贴到另一张图上去的.

安装依赖

pip install python-barcode

导入依赖:

import os
import sys

import win32ui
from barcode import EAN13, Code128, generate

from barcode.writer import ImageWriter
from PIL import Image, ImageWin, ImageDraw, ImageFont

import win32print

定义生成条形码的方法

def generate_barcode_with_text(data, text=None, extra_space=100):
    print("generate_barcode_with_text被调用")
    # 生成条形码

    output_path = 'temp_barcode'
    writer = ImageWriter()
    # 在这里打印一下看看字体文件的路径, 尝试能否修改
    print("generate_barcode_with_text:",writer.font_path)


    barcode = generate('code128', data, writer=writer,  output=output_path)

    # 打开条形码图片
    barcode_img = Image.open(output_path+'.png')

    # 创建新的图片,比原条形码图片高extra_space像素
    new_img = Image.new('RGB', (barcode_img.width, barcode_img.height + extra_space), color=(255, 255, 255))

    # 将条形码粘贴到新图片的底部
    new_img.paste(barcode_img, (0, extra_space))

    # 在新图片的顶部添加文字
    draw = ImageDraw.Draw(new_img)
    font = ImageFont.truetype("arial.ttf", size=40)  # 确保你的系统中有这个字体文件

    draw.text((60, 30), text, font=font, fill=(0, 0, 0))

    # 保存最终的图片
    final_path = 'barcode.png'
    new_img.save(final_path)


    # 调用打印机打印的方法
    # print_image(final_path)

    return final_path

测试一下, 在main方法中调用此方法,:

if __name__ == '__main__':

    generate_barcode_with_text("123456789ABC", "woshizhangsan")

 运行后在同级目录下生成条形码图片:

如果需要打印就调用打印机打印下

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值