wkhtmltopdf-django动态模板渲染
wkhtmltopdf-django dynamic template to render
是否有任何方法可以动态生成 PDF,并从数据库中获取内容?
我的目标是让我的用户从所见即所得的编辑器生成他们自己的 PDF 设计。
这是我的模型
class DocumentService(models.Model):
name = models.CharField(max_length=60, blank=True)
html_content = models.TextField(blank=True)
我使用 django-wkhtmltopdf 将 html 呈现为 PDF。
response = PDFTemplateResponse(
request=request,
template="document.html",
filename=filename,
context=data,
show_content_in_browser=True,
cmd_options=cmd_options,
)
如何将此记录的内容呈现到我的 PDF 中?
document = DocumentService.objects.get(pk=1)
document.html_content # <-- this content
HTML内容应该是这样的
<html>
<body>
<p>
<strong>Date: </strong> {{date}}
<strong>User: </strong> {{user.name}}
<strong>Email: </strong> {{user.email}}
<strong>Info: </strong> {{user.info}}
...
</p>
</body>
</html>
只需使用engines.from_string(template_code)
from django.template import engines
document = DocumentService.objects.get(pk=1)
data = {'data': document.html_content}
str_template = render_to_string("document.html", data)
response = PDFTemplateResponse(
request=request,
template= engines['django'].from_string(str_template),
filename=filename,
context=data,
show_content_in_browser=True,
cmd_options=cmd_options,
)
在你的document.html里面你必须像这样添加
<body>
{{data|safe}} <!--- Use safe if you want to render html --->
</body>
是否有任何方法可以动态生成 PDF,并从数据库中获取内容?
我的目标是让我的用户从所见即所得的编辑器生成他们自己的 PDF 设计。
这是我的模型
class DocumentService(models.Model):
name = models.CharField(max_length=60, blank=True)
html_content = models.TextField(blank=True)
我使用 django-wkhtmltopdf 将 html 呈现为 PDF。
response = PDFTemplateResponse(
request=request,
template="document.html",
filename=filename,
context=data,
show_content_in_browser=True,
cmd_options=cmd_options,
)
如何将此记录的内容呈现到我的 PDF 中?
document = DocumentService.objects.get(pk=1)
document.html_content # <-- this content
HTML内容应该是这样的
<html>
<body>
<p>
<strong>Date: </strong> {{date}}
<strong>User: </strong> {{user.name}}
<strong>Email: </strong> {{user.email}}
<strong>Info: </strong> {{user.info}}
...
</p>
</body>
</html>
只需使用engines.from_string(template_code)
from django.template import engines
document = DocumentService.objects.get(pk=1)
data = {'data': document.html_content}
str_template = render_to_string("document.html", data)
response = PDFTemplateResponse(
request=request,
template= engines['django'].from_string(str_template),
filename=filename,
context=data,
show_content_in_browser=True,
cmd_options=cmd_options,
)
在你的document.html里面你必须像这样添加
<body>
{{data|safe}} <!--- Use safe if you want to render html --->
</body>