Python之ReportLab繪製條碼和二維碼的執行個體,pythonreportlab

來源:互聯網
上載者:User

Python之ReportLab繪製條碼和二維碼的執行個體,pythonreportlab

條碼和二維碼

#引入所需要的基本包from reportlab.pdfgen import canvasfrom reportlab.graphics.barcode import code39, code128, code93from reportlab.graphics.barcode import eanbc, qr, uspsfrom reportlab.graphics.shapes import Drawing from reportlab.lib.units import mmfrom 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函數:儲存當前頁的canvasc.showPage()#save函數:儲存檔案並關閉canvasc.save()

運行結果:

以上這篇Python之ReportLab繪製條碼和二維碼的執行個體就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援幫客之家。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.