码迷,mamicode.com
首页 > 其他好文 > 详细

django 生成动态的PDF文件

时间:2020-03-25 21:33:39      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:import   sheet   一个   name   mic   com   filename   conf   port   

 

需要依赖库.

WeasyPrint,它是一个Python库可以生成PDF文件从HTML模板中。
安装WeasyPrint

pip install WeasyPrint

创建一个PDF模板(template)
我们需要一个HTML文档给WeasyPrint输入。我们将要创建一个HTML
模板(template),渲染它使用Django,并且传递它给WeasyPrint来生成

PDF文件。

创建一个新的模板(template)文件在myapp应用的

templates目录下命名为pdf.html

<html>

    添加你要生成的页面

</html>

这个模板(template)就是PDF文件

渲染PDF文件
我们将要创建一个视图(view)来生成PDF文件。编辑myapp应用的views.py文件添加如下代码:

from django.conf import settings
from django.http import HttpResponse
from django.template.loader import render_to_string
import weasyprint
@staff_member_required
def admin_order_pdf(request, order_id):
    queryset = get_object_or_404(mymodel, id=mymodel_id)
    html = render_to_string(‘pdf.html‘,
    {‘queryset‘: queryset})
    response = HttpResponse(content_type=‘application/pdf‘)
    response[‘Content-Disposition‘] = ‘filename=\"mymodel_{}.pdf"‘.format(mymodel.id)

    weasyprint.HTML(string=html).write_pdf(response,

        stylesheets=[weasyprint.CSS(settings.STATIC_ROOT + ‘css/pdf.css‘

    )])

    return response

 

接下来配置一个路由去访问就行了

技术图片

 
分类: django

django 生成动态的PDF文件

标签:import   sheet   一个   name   mic   com   filename   conf   port   

原文地址:https://www.cnblogs.com/skbarcode/p/12569277.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!