0
我一直在成功使用Weasyprint進行pdf生成,直到我達到一定的大小,我的應用程序的常見用例,其中的pdf生成需要這麼長的時間(超過10秒),它打破了與瀏覽器的連接,並且下載是不可能的。Weasyprint pdf生成時間過長,導致下載無法進行。如何流式創建?
我想我必須流創建文件並返回一個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)
或者有另一種方式來解決這個問題呢?
謝謝!
瀏覽器可以等待響應沒有任何時間限制。如果您的連接中斷,意味着超時設置在您的Web服務器或反向代理服務器的某處。只要找到它,並增加它。 –
@YaroslavStavnichiy可能無法修復pb,但可能會讓更多用例起作用。雖然用戶在等待文件下載時會比較好,而不是在微調器循環時。感謝提示! – Ehvince