我的django应用程序中有一个模板,我需要在变量中呈现它或将其保存在html文件中。
我的目标是将模板的html渲染转换为pdf,我使用的是pdfkit,因为它是我见过的最好的html to pdf转换器,reportlab没有做我想要的。
当我尝试做这样的事情时:
pdf = pdfkit.from_file ('app / templates / app / table.html', 'table.pdf')
我得到了pdf,但打印出类似这样的内容:
我感谢任何帮助!
答案 0 :(得分:2)
这是我的案例的解决方案,我使用django 2.0.1和pdfkit 0.6.1:
获取模板:
template = get_template ('plapp / person_list.html')
使用数据进行渲染:
html = template.render ({'persons': persons})
继续在views.py中定义方法,直接在浏览器中下载pdf:
def pdf(request):
persons = Person.objects.all()
template = get_template('plapp/person_list.html')
html = template.render({'persons': persons})
options = {
'page-size': 'Letter',
'encoding': "UTF-8",
}
pdf = pdfkit.from_string(html, False, options)
response = HttpResponse(pdf, content_type='application/pdf')
response['Content-Disposition'] = 'attachment;
filename="pperson_list_pdf.pdf"'
return response
答案 1 :(得分:1)
unresolved reference `gmpy2`
使用以上方法导入返回模板的函数。 from django.template.loader import get_template, render_to_string
返回模板对象,而get_template
返回呈现模板的字符串。这是我使用weasyprint而不是pdfkit的方式。
render_to_string