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

 更新时间:2018年01月15日 14:46:33   作者:阿Bin先生  
下面小编就为大家分享一篇Python之ReportLab绘制条形码和二维码的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

条形码和二维码

#引入所需要的基本包
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绘制条形码和二维码的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • django 基于中间件实现限制ip频繁访问过程详解

    django 基于中间件实现限制ip频繁访问过程详解

    这篇文章主要介绍了django 基于中间件实现限制ip频繁访问过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • 使用python批量修改文件名的方法(视频合并时)

    使用python批量修改文件名的方法(视频合并时)

    这篇文章主要介绍了视频合并时使用python批量修改文件名的方法,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • tensorflow可视化Keras框架中Tensorboard使用示例

    tensorflow可视化Keras框架中Tensorboard使用示例

    这篇文章主要为大家介绍了tensorflow可视化Keras框架中Tensorboard使用示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • python turtle库画圣诞树详细代码教程

    python turtle库画圣诞树详细代码教程

    这篇文章主要介绍了python turtle库画圣诞树详细代码教程,圣诞节快到了,下面小编就来利用python turtle库画一颗圣诞树, 主要成分有圣诞树的本体、大小蝴蝶结、星星、圣诞帽和袜子,需要的朋友可以参考一下
    2021-12-12
  • Python操作mysql数据库实现增删查改功能的方法

    Python操作mysql数据库实现增删查改功能的方法

    这篇文章主要介绍了Python操作mysql数据库实现增删查改功能的方法,涉及Python针对mysql数据库的连接、增删改查等相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • python读取eml文件并用正则表达式匹配邮箱的代码

    python读取eml文件并用正则表达式匹配邮箱的代码

    今天接到一个需求有一个同事离职了,但是留下了非常多的邮件,我需要将他的邮件进行分类,只要邮件中以@xxx.com结尾的存放在文件夹中,否则放在另一个文件夹中,这篇文章主要介绍了python读取eml文件并用正则匹配邮箱,需要的朋友可以参考下
    2022-11-11
  • 在python中的socket模块使用代理实例

    在python中的socket模块使用代理实例

    这篇文章主要介绍了在python中的socket模块使用代理实例,调用socks.setdefaultproxy即可实现,需要的朋友可以参考下
    2014-05-05
  • Python Django 数据库的相关操作详解

    Python Django 数据库的相关操作详解

    下面小编就为大家带来一篇django数据库的相关操作,小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-11-11
  • Python机器学习之使用Pyecharts制作可视化大屏

    Python机器学习之使用Pyecharts制作可视化大屏

    pyecharts是一个用于生成Echarts图表的Python库,Echarts是百度开源的一个数据可视化 JS 库,可以生成一些非常酷炫的图表,这篇文章主要给大家介绍了关于Python机器学习之Pyecharts制作可视化大屏的相关资料,需要的朋友可以参考下
    2021-10-10
  • python从Oracle读取数据生成图表

    python从Oracle读取数据生成图表

    这篇文章主要介绍了python如何从Oracle读取数据生成图表,帮助大家更好的利用python处理数据,感兴趣的朋友可以了解下
    2020-10-10

最新评论