我想在生成的PDF中显示生成的qr代码,但它没有显示。如果是在html中显示,但不是在pdf中显示。我想在不保存到媒体的情况下显示PDF格式的二维码
这是我在views.py:中的代码
path_qr = 'localhost:8000/qrcode/detail/1'
qr = QRCode()
qr.add_data(path_qr)
img = qr.make_image()
data = {
'qr_code': img
}
template = get_template(template_src)
html = template.render(data)
result = BytesIO()
pdf1 = pisa.pisaDocument(BytesIO(html.encode("ISO-8859-1")), result)
return HttpResponse(result.getvalue(), content_type='application/pdf')
这是我的html代码:
<img src="{{ qrcode }}" width="100" height="100">
我找到了解决方案。我必须编码成b64。及其工作
dataurl = 'data:image/png;base64,' + b64encode(qr_rend.getvalue()).decode('ascii')
所以我的代码是这样的:
path_qr = 'localhost:8000/qrcode/detail/1'
qr_rend = BytesIO()
img = make(path_qr)
img.save(qr_rend, 'PNG')
dataurl = 'data:image/png;base64,' + b64encode(qr_rend.getvalue()).decode('ascii')
在html中,如下所示:
<img src="{{ dataurl }}" width="100" height="100">