方法:python-pdfkit 将网页(JS生成)转换为PDF
views.py
def download_as_pdf(request):
# some stuff/function call to get updated(with data and JS) template and render it
return render(request, temp)
def download(request):
import pdfkit
pdfkit.from_url('/download/', 'out.pdf', options={'ignore-load-errors': None})
return HttpResponse('DONE')
urls.py
url(r'^download/', views.download_as_pdf, name="download_pdf")
我想把/download/
这个网址的所有内容(一些图表,使用JS生成的 - flotcharts)打印到PDF里。如果我在download_as_pdf
这个视图里放这两行代码
import pdfkit
pdfkit.from_url('/download/', 'out.pdf', options={'ignore-load-errors': None})
它在PDF里什么都不打印(虽然PDF会下载,但里面是空的)。我觉得可能是因为模板渲染在这些语句之后进行,所以才会这样??
我应该怎么做才能把图表打印到PDF里?(我可以通过线程来解决这个问题吗?怎么做?)或者有没有其他的方法?
1 个回答
5
这可能是因为在整个JavaScript加载完成之前,PDF就已经被渲染出来了。如果你在JavaScript中加入一个延迟,它就能正常工作了。
options = {
'javascript-delay':'5000'
}