我想使用xhtml2pdf从django中的html生成pdf。但是xhtml2pdf似乎制作了完整HTML模板的PDF。我想说的是假设我的html文件中有一个侧面菜单,一个页眉,一个页脚和一些内容表。现在,我想只从html文件生成该表的pdf。我怎么能用xhtml2pdf做到这一点?
谢谢。
答案 0 :(得分:1)
您可以为页面的不同部分分隔模板文件。例如,您可能有一个包含常用模板的基本html,并且您还将包含要包含要转换为pdf的数据的table.html
。
您可以使用include
内置模板标签在其他模板中使用它:请参阅文档here。您也可以检查extends
templatetag,这是非常方便的here。
这样的事情:
# base.html
{% include 'table.html' %}
# views.py
def render_to_pdf(request):
template_path = 'table.html' # Here is the template you want to convert
context = {'myvar': 'this is your template context'}
# Create a Django response object, and specify content_type as pdf
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="report.pdf"'
# find the template and render it.
template = get_template(template_path)
html = template.render(Context(context))
# create a pdf
pisaStatus = pisa.CreatePDF(
html, dest=response, link_callback=link_callback)
# if error then show some funy view
if pisaStatus.err:
return HttpResponse('We had some errors <pre>' + html + '</pre>')
return response
您可以在xhtml2pdf文档here
中查看pdf创建