Python之ReportLab绘制条形码和二维码的实例


Posted in Python onJanuary 15, 2018

条形码和二维码

#引入所需要的基本包
from reportlab.pdfgen import canvas
from reportlab.graphics.barcode import code39, code128, code93
from reportlab.graphics.barcode import eanbc, qr, usps
from reportlab.graphics.shapes import Drawing 
from reportlab.lib.units import mm
from reportlab.graphics import renderPDF
#----------------------------------------------------------------------
def createBarCodes(c):
  barcode_value = "1234567890"
  barcode39 = code39.Extended39(barcode_value)
  barcode39Std = code39.Standard39(barcode_value, barHeight=20, stop=1)
  # code93 also has an Extended and MultiWidth version
  barcode93 = code93.Standard93(barcode_value)
  barcode128 = code128.Code128(barcode_value)
  # the multiwidth barcode appears to be broken 
  #barcode128Multi = code128.MultiWidthBarcode(barcode_value)
  barcode_usps = usps.POSTNET("50158-9999")
  codes = [barcode39, barcode39Std, barcode93, barcode128, barcode_usps]
  x = 1 * mm
  y = 285 * mm
  for code in codes:
    code.drawOn(c, x, y)
    y = y - 15 * mm
  # draw the eanbc8 code
  barcode_eanbc8 = eanbc.Ean8BarcodeWidget(barcode_value)
  d = Drawing(50, 10)
  d.add(barcode_eanbc8)
  renderPDF.draw(d, c, 15, 555)
  # draw the eanbc13 code
  barcode_eanbc13 = eanbc.Ean13BarcodeWidget(barcode_value)
  d = Drawing(50, 10)
  d.add(barcode_eanbc13)
  renderPDF.draw(d, c, 15, 465)
  # draw a QR code
  qr_code = qr.QrCodeWidget('http://blog.csdn.net/webzhuce')
  bounds = qr_code.getBounds()
  width = bounds[2] - bounds[0]
  height = bounds[3] - bounds[1]
  d = Drawing(45, 45, transform=[45./width,0,0,45./height,0,0])
  d.add(qr_code)
  renderPDF.draw(d, c, 15, 405)
#定义要生成的pdf的名称
c=canvas.Canvas("barcodes.pdf")
#调用函数生成条形码和二维码,并将canvas对象作为参数传递
createBarCodes(c)
#showPage函数:保存当前页的canvas
c.showPage()
#save函数:保存文件并关闭canvas
c.save()

运行结果:

Python之ReportLab绘制条形码和二维码的实例

以上这篇Python之ReportLab绘制条形码和二维码的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解使用Python处理文件目录的相关方法
Oct 16 Python
python开发之文件操作用法实例
Nov 13 Python
深入理解python多进程编程
Jun 12 Python
python unittest实现api自动化测试
Apr 04 Python
如何基于python生成list的所有的子集
Nov 11 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
Nov 27 Python
Pytorch 实现冻结指定卷积层的参数
Jan 06 Python
python3实现raspberry pi(树莓派)4驱小车控制程序
Feb 12 Python
浅析Python __name__ 是什么
Jul 07 Python
基于python实现操作git过程代码解析
Jul 27 Python
python 实时调取摄像头的示例代码
Nov 25 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
Mar 04 Python
Tornado高并发处理方法实例代码
Jan 15 #Python
使用Python实现windows下的抓包与解析
Jan 15 #Python
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
Jan 15 #Python
Python操作mysql数据库实现增删查改功能的方法
Jan 15 #Python
使用python编写简单的小程序编译成exe跑在win10上
Jan 15 #Python
python逆向入门教程
Jan 15 #Python
Python3一行代码实现图片文字识别的示例
Jan 15 #Python
You might like
再说下636单管机
2021/03/02 无线电
ASP和PHP都是可以删除自身的
2007/04/09 PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
2014/11/03 PHP
php字符串截取函数用法分析
2014/11/25 PHP
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
PHP 前加at符合@的作用解析
2015/07/31 PHP
php禁用cookie后session设置方法分析
2016/10/19 PHP
JavaScript高级程序设计 事件学习笔记
2011/09/10 Javascript
用jquery中插件dialog实现弹框效果实例代码
2013/11/15 Javascript
Javascript对象属性方法汇总
2013/11/21 Javascript
jq实现酷炫的鼠标经过图片翻滚效果
2014/03/12 Javascript
javascript中加号(+)操作符的一些神奇作用
2014/06/06 Javascript
JavaScript实现图片滑动切换的代码示例分享
2016/03/06 Javascript
jQuery图片左右滚动代码 有左右按钮实例
2016/06/20 Javascript
JavaScript基于对象去除数组重复项的方法
2016/10/09 Javascript
基于jQuery实现Accordion手风琴自定义插件
2020/10/13 Javascript
JavaScript实现图片懒加载(Lazyload)
2016/11/28 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
2017/09/28 Javascript
vue获取元素宽、高、距离左边距离,右,上距离等还有XY坐标轴的方法
2018/09/05 Javascript
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
vue相同路由跳转强制刷新该路由组件操作
2020/08/05 Javascript
[00:36]DOTA2上海特级锦标赛 Archon战队宣传片
2016/03/04 DOTA
python实现数据图表
2017/07/29 Python
python执行精确的小数计算方法
2019/01/21 Python
Python实现查找数组中任意第k大的数字算法示例
2019/01/23 Python
Python实现元素等待代码实例
2019/11/11 Python
python去除删除数据中\u0000\u0001等unicode字符串的代码
2020/03/06 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
python可迭代对象去重实例
2020/05/15 Python
Keras—embedding嵌入层的用法详解
2020/06/10 Python
Python之Sklearn使用入门教程
2021/02/19 Python
Eastbay官网:美国最大的运动鞋网络零售商
2016/07/27 全球购物
先进教师个人事迹材料
2014/12/15 职场文书
化妆品促销活动总结
2015/05/07 职场文书
vue route新窗口跳转页面并且携带与接收参数
2022/04/10 Vue.js