昨天搞定了树莓派下斑马标签打印机,今天顺便把条码标签生成也搞定吧。python
本次测试目标是在4cm*3cm的不干胶标签上,同时打印出QR二维码和文字。其中文字要支持中文。测试
思路很简单:.net
1 生成QR码图像;code
2 生成新空白图像,用以表明物理标签;blog
3 在标签图片上打印出QR图像;图片
4 在标签图片上打印出文字。utf-8
不得不说python仍是很给力的,实现起来很方便。unicode
#! coding: utf-8 import qrcode #apt-get python-qrcode import Image,ImageDraw,ImageFont # Create QR Image qr = qrcode.QRCode( None #自动决定大小,配合下面的fit=True ,qrcode.constants.ERROR_CORRECT_L #纠错级别 ,2 #单元方格的大小 ,4 #须要预留的边距宽度 ) qr.add_data('http://blog.csdn.net/ki1381') qr.make(fit=True) qrImg = qr.make_image() #img.save('/home/pi/src/zzzz.png') # Process Image #qrImg = Image.open('/home/pi/src/zzzz.png') (w,h) = qrImg.size qrNewImg = Image.new('RGBA',(200,150),(255,255,255)) #200,150为经验值 qrNewImg.paste(qrImg,(0,0,w,h)) ft = ImageFont.truetype('/usr/share/fonts/truetype/freefont/FreeSans.ttf',16) ft2 = ImageFont.truetype('/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc',16) draw = ImageDraw.Draw(qrNewImg) draw.text((8,h),'blog.csdn.net/ki1381',fill=(0,0,0),font = ft) #col,row draw.text((w+8,4),unicode('ki1381专栏','utf-8'),fill=(0,0,0),font = ft2) qrImg.close() qrNewImg.save('/home/pi/src/a.png','PNG') qrNewImg.close()
a.png效果图以下:get