我如何获取用PyQRCode处理的QR码?

问题描述 投票:0回答:1

我正在尝试将图像附加到pdf。我已经成功添加了条形码,但是QRCode遇到了麻烦。我正在使用PyQrCode和ReportLab]

这是我的代码窃听器:

我附上:

parts.append(Image(self.qrCode, width=.3* 0.7 *inch, height=.4*.56*inch))`

我在哪里创建QRCode:

        qrCode = pyqrcode.create(str("252525"), error='L', version=27, mode='binary')
        qrCode.svg(sys.stdout, scale=1)
        qrCode.svg('uca-url.svg', scale=4)

        number = pyqrcode.create(123456789012345)
        number.png('big-number.png')

和我得到的错误:

AttributeError at /inventories/download_tag/2525/ QRCode instance has no attribute 'rfind'

这里是否有更好的库或方法可以实现我的目标?

python reportlab
1个回答
0
投票

我可以分享完成的方式,但是我的实现是将其直接绘制在画布上,然后将其添加到文档模板的脚注中。您的方法是先创建一个png,然后将其添加(我对一个图形对象进行了类似的操作,但是后来我使用了pdfrw,这是一个很好的插件,刚开始时我对文件夹的写访问有些费力)。看看下面是否适合您。

  def get_footer(self):
        def func(canvas, doc):
            canvas.saveState()
           # draw a QR code
            receipt = str(inventory.identifier)
            qr_code = qr.QrCodeWidget(f'{receipt}')
            bounds = qr_code.getBounds()
            width = bounds[2] - bounds[0]
            height = bounds[3] - bounds[1]
            d = Drawing(60, 60, transform=[60. / width, 0, 0, 60. / height, 0, 0])
            d.add(qr_code)
            d.drawOn(canvas, 1.77 * cm, 259.55 * mm)
            canvas.restoreState()
        return func


        frontpage = PageTemplate(id='FrontPage',
                                 onPage=self.get_footer(),
                                 frames=[frame1, frame2],                                  
                                 )
© www.soinside.com 2019 - 2024. All rights reserved.