我已经使用Weasyprint将HTML文件呈现为PDF。但是,没有显示图像。我尝试过针对此处发布的类似问题的解决方案,并将代码重写为:
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename=%s.pdf' % emp_id
pdf_doc = HTML(string=render_output,base_url=request.build_absolute_uri()).render()
pdf_doc.write_pdf(response)
return response
我已经在模板中定义了img标签,如下所示:
<img class="logo" src="static/app/nineleaps.png" alt="Not Found">
PDF不显示图像,而是显示“未找到”。 有针对这个的解决方法吗?其他html到pdf转换器不能像这样精确地渲染我的模板,因此我更喜欢仅使用WeasyPrint的模板。
答案 0 :(得分:2)
您可能希望base_url
是
request.build_absolute_uri('/')
–如果忽略该位置,则会获得当前请求的绝对路径,您可能无法在其中添加/static/app/nineleaps.png
。
如果失败,则应该可以查看runserver
的控制台输出。 Weasyprint尝试做出的请求(以及哪些404)应该在此处可见...