python生成417码(PDF417)

本文介绍如何使用Python的elaphe库生成PDF417二维条形码,并结合PIL库创建带有描述性文字的图片。通过调整选项参数,生成的条码符合指定规范。
摘要由CSDN通过智能技术生成
#-*- encoding: utf-8 -*-
from elaphe.pdf417 import Pdf417
import os
import pygame
import sys
from pygame.locals import *
from PIL import Image,ImageDraw,ImageFont

reload(sys)
sys.setdefaultencoding("utf-8")

#1 生成PDF147的条码图片
bc = Pdf417()
#print bc.render_ps_code('PDF417')
text = '068080835AD000D10701014111'.upper()
img = bc.render(text, options=dict(columns=1,rows=10,eclevel=1,rowmult=1), scale=3)
#img.save(text+'.png', 'png')

#2 生成描述性文字图片
#3 合成为一个新的图片,即最终包含说明的,符合菲亚特规范PDF147的条码图片

base = Image.open("pdf147-middle.png")
base_w, base_h = base.size
tmp = img#Image.open(text+'_tmp.png')
tmp_w, tmp_h = tmp.size
tmp = tmp.resize((tmp_w, tmp_h), Image.ANTIALIAS)
b_w = int((base_w - tmp_w) / 2)
b_h = int((base_h - tmp_h) / 2) - 15
tmp = tmp.convert("RGBA")
base.paste(tmp, (b_w, b_h), tmp)


font = ImageFont.truetype('simsun.ttc',12)
draw = ImageDraw.Draw(base)
draw.text((base_w/2-len(text)-b_w*2,95), text,(0,0,0),font=font)
content = "P07D111140 T07D1111407010 20150321113322 188007"
draw.text((base_h/2-len(content)-b_h*2,110),unicode(content,'utf-8'),(0,0,0),font=font)

base.save(text+".png")
演示软件使用说明 1、本软件为演示软件,在性能和功能上有所限制; 2、参数说明: 条列数 取值范围1-30,根据具体要生成的数据量决定; 例如20 byte左右数据量,取值范围可设3-5; 纠错等级 条污损后的纠错能力,取值范围0-7,建议取1-3; 长宽比例 条单位长度和宽度比例,取值范围1-5; 1----紧凑型条生成图片容量最小,适合配合数据库管理系统使用, 便于直接以最小的容量存储在数据库中,而且生成速度最快,适合大 批量生成。但需要通过报表控件做纵横向适当拉伸后,打印出来 才可识读,不能直接打印识读或软解; 2--5 标准型条,适合直接打印识读或软件解,建议取3。 以上参数的设置将直接影响条的可读性和条图片的大小。 3、在文本框中输入要生成的信息,输入欲保存图片的名称,按“生成”即在当前目录下产生指定的bmp图片; 默认路径为执行文件同目录,默认文件名为bar.bmp; 4、若要打印,可用windows提供的“画图”工具打开bar.bmp,直接按打印就可以在打印机上输出; 建议采用激光打印机; 5、本控件能将文字信息、照片信息等生成二维; 6、本控件可以采用DLL方式或COM方式提供。 7、本软件只演示将文本信息(注意要<1kByte)生成pdf417二维并解; 8、解控件可以支持黑白二色、256色、24位真彩二维图片。 若需要其他功能演示,如图片压缩生成二维二维与数据库连接,扫描枪与串口连接读取二维, 软件进行二维图片解等等;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值