Vik*_*thy 0 javascript python pdf django
我的应用程序需要将报告邮寄给客户,因此我需要一种有效的方法将动态模板转换为 pdf 报告(包括通过 chart.js 生成的图像)。我尝试过 pdfkit,但它需要一个 URL(它很可能会在该 URL 上执行 GET,但是模板会在几次 AJAX 调用后生成报告,因此 GET 将只返回带有一些过滤器的普通页面)并且它不包括图像(我猜我可以通过使用 dataToURL 将图表图像转换为 png 并保存在服务器上来解决)。
我在这里看到的唯一选择是保存动态生成的所有数据以及 html 标签,然后在服务器上重新创建文件,然后转换为 pdf。我相信有更好的解决方案。抱歉,如果这看起来很基本,但我的职业不是程序员。
Django 有几个输出 PDF 的选项,其中最灵活的是ReportLab。
然而,在传递上下文数据的同时将 Django 模板渲染为 PDF,Weasyprint / xhtml2pdf非常简单。下面是一个使用早期 xhtml2pdf 库的示例。这是一个标准的 Django 视图。
需要明确的是,所有这些库都采用一个 Django 模板,渲染它,然后返回一个 PDF。有一些限制(例如,Pisa 只有少数可以渲染的 CSS 参数)。无论如何,看看这三个;至少有一个会完全满足您的需求。
from django_xhtml2pdf.utils import generate_pdf
def myview(request):
resp = HttpResponse(content_type='application/pdf')
dynamic_variable = request.user.some_special_something
context = {'some_context_variable':dynamic_variable}
result = generate_pdf('my_template.html', file_object=resp, context=context)
return result
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3351 次 |
| 最近记录: |