[reportlab-users] Performance Issue generating multiple QR codes

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


ah yes - and the bottleneck was not the qr code data generation, but
reportlab printing the qr code. it seems as it is quite a challenge for
reportlab to render the qr code when using QrCodeWidget. But rending .pngs
is super fast! Thus I would recommend rendering QR code images.

Best regards,
Thomas

2014-09-17 21:15 GMT+02:00 Thomas Kremmel <thomasspin at gmail.com>:

> > 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/c809db79/attachment-0001.html>


More information about the reportlab-users mailing list