我一直在成功使用 Weasyprint 生成 pdf,直到达到一定大小,这是我的应用程序的一个常见用例,其中 pdf 生成需要很长时间(超过 10 秒),以至于它破坏了与浏览器的连接,并且下载是不可能的。
我想我必须流式传输文件创建并返回 django StreamingHttpResponse(同意?)。我不会对 pdf 进行预处理,因为它是由包含用户经常添加或删除的项目的篮子组成的。
但是如何使用weasyprint流式传输文件创建?即使我将我的 sourceHtml 字符串分成几部分,如何逐步编写 pdf?
我渲染一个 django 模板并从中生成 pdf:
from weasyprint import HTML
sourceHtml = template.render(my-objects)
outhtml = HTML(string=sourceHtml).write_pdf()
response = HttpResponse(outhtml, content_type='application/pdf')
response['Content-Disposition'] = u'attachment; filename="{}.pdf"'.format(name)
还是有其他方法可以解决这个问题?
谢谢 !