[reportlab-users] Performance Issue generating multiple QR codes

Thomas Kremmel thomasspin at gmail.com
Wed Sep 17 15:15:24 EDT 2014


> Seriously?  You have a QR block that covers 40 square inches?  Will QR
> scanners read that?

Yeah, they can read it quite easily.


For the record. I switched to generating the QR data as a .png and
rendering the resulting .png into the .pdf. Brings down the 20 seconds to
2. :)

Here is the code, using https://pypi.python.org/pypi/qrcode instead of the
reportlab QrCodeWidget .

qr = qrcode.QRCode(
            version=1,
            error_correction=qrcode.constants.ERROR_CORRECT_L,
            box_size=10,
            border=4,
        )
        qr.add_data(qr_code_data)
        qr.make(fit=True)
        qr_img = qr.make_image()

        # create a byte stream
        output = io.BytesIO()
        # put image data into byte stream
        qr_img.save(output)
        # set byte stream to first read position
        output.seek(0)
        # create reportlab image with byte stream
        rl_img = Image(output, width=10*cm, height=10*cm)

        self.pdf.img(rl_img)

2014-09-17 19:43 GMT+02:00 Tim Roberts <timr at probo.com>:

> Thomas Kremmel wrote:
> > Hello,
> >
> > I'm using Reportlab to generate a pdf with 10 pages. I print on each
> > page a QR code, which is about half the size of the A4 page.
>
> Seriously?  You have a QR block that covers 40 square inches?  Will QR
> scanners read that?
>
>
> > The generation of the .pdf takes me about 20 seconds.
> > When I generate the .pdf without the QR codes the .pdf is generated
> > immediately. Thus it is obvious that the pdf generation of the QR
> > codes consumes the most time.
> >
> > Any idea what I could do here to bring this down to an user acceptable
> > time - say 2 seconds.
>
> Generating a QR code is computationally expensive.  There's no two ways
> about it.  It's a recursive algorithm with lots of mathematics.  If this
> is a problem for you, you could try to rewrite part of the algorithm in
> C++, but it would be tricky to integrate that with the Python code.
>
> --
> Tim Roberts, timr at probo.com
> Providenza & Boekelheide, Inc.
>
> _______________________________________________
> reportlab-users mailing list
> reportlab-users at lists2.reportlab.com
> https://pairlist2.pair.net/mailman/listinfo/reportlab-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist2.pair.net/pipermail/reportlab-users/attachments/20140917/baacc387/attachment.html>


More information about the reportlab-users mailing list