从python2的django网页生成pdf的方法有很多。最干净的可能是比萨和reportlab。这些虽然不适用于python3。
到目前为止,我成功的唯一方法是呈现模板,将其写入文件,然后通过subprocess.popen使用wkhtmltopdf。这项工作正常,但不会加载我的任何静态文件,例如CSS和图像。
有什么合适的解决方案吗?wkhtmltopdf可以以某种方式从命令行读取我的静态文件,还是像pisa / reportlab这样的库支持python3?
我找不到这样的图书馆
您可以使用Weasyprint。您可以轻松地直接渲染。
您可以这样做:
html = HTML(string=htmlstring)
main_doc = html.render()
pdf = main_doc.write_pdf()
return HttpResponse(pdf, content_type='application/pdf')
要将Django视图呈现为HTML,您可以简单地使用快捷方式 render_to_string(self.template_name, context, context_instance=RequestContext(self.request))
请注意,将它与同步Web服务器/ WSGI服务器一起使用时,所有请求都将被阻止,直到呈现PDF。因此,请考虑使用ASYNC Worker。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句