'utf8' 编解码器无法解码位置 0 中的字节 0xb5:无效起始字节错误
'utf8' codec can't decode byte 0xb5 in position 0: invalid start byte error
我正在尝试使用 WeasyPrint 库从 html 创建一个 pdf 文件,我正在学习这个教程:
https://www.bedjango.com/blog/how-generate-pdf-django-weasyprint/
但是给出的描述有误。有人可以帮助我吗?
编辑:
调试我意识到当我应用 output.read ()
时会发生错误
def termoPDFView(request, id):
termo = TermoReferenciaPregao.objects.get(id=id)
html_string = render_to_string('painel/report/termo-referencia-pdf.html', {'termo': termo})
pdf = HTML(string=html_string).write_pdf()
response = HttpResponse(content_type='application/pdf;')
response['Content-Disposition'] = 'inline; filename=termo-referencia.pdf'
response['Content-Transfer-Encoding'] = 'utf-8'
with tempfile.NamedTemporaryFile(delete=True) as output:
output.write(pdf)
output.flush()
output = open(output.name, 'r')
response.write(output.read())
return response
感谢所有看到问题并尝试解决的人。知道了!缺少“b”模式。
output = open(output.name, 'rb')
我正在尝试使用 WeasyPrint 库从 html 创建一个 pdf 文件,我正在学习这个教程:
https://www.bedjango.com/blog/how-generate-pdf-django-weasyprint/
但是给出的描述有误。有人可以帮助我吗?
编辑: 调试我意识到当我应用 output.read ()
时会发生错误def termoPDFView(request, id):
termo = TermoReferenciaPregao.objects.get(id=id)
html_string = render_to_string('painel/report/termo-referencia-pdf.html', {'termo': termo})
pdf = HTML(string=html_string).write_pdf()
response = HttpResponse(content_type='application/pdf;')
response['Content-Disposition'] = 'inline; filename=termo-referencia.pdf'
response['Content-Transfer-Encoding'] = 'utf-8'
with tempfile.NamedTemporaryFile(delete=True) as output:
output.write(pdf)
output.flush()
output = open(output.name, 'r')
response.write(output.read())
return response
感谢所有看到问题并尝试解决的人。知道了!缺少“b”模式。
output = open(output.name, 'rb')