Re: Performance Issue generating multiple QR codes
Thomas Kremmel <[email protected]>
| Newsgroups | gmane.comp.python.reportlab.user |
|---|---|
| Message-ID | <CA+nmuN-ajCXUNvc8NBL12w13OfxJ6AJhiXAunKLZZQra7AVSQw@mail.gmail.com> |
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 <[email protected]>: > > 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 <[email protected]>: > >> 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, [email protected] >> Providenza & Boekelheide, Inc. >> >> _______________________________________________ >> reportlab-users mailing list >> [email protected] >> https://pairlist2.pair.net/mailman/listinfo/reportlab-users >> > >