亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Django網站中將HTML渲染為PDF

在Django網站中將HTML渲染為PDF

開心每一天1111 2019-11-21 12:49:08
對于我的django網站,我正在尋找一種將動態html頁面轉換為pdf的簡單解決方案。頁面包含HTML和來自Google可視化API的圖表(該圖表基于javascript,但必須包含這些圖表)。
查看完整描述

3 回答

?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

我只是為CBV打了個招。未在生產中使用,但會為我生成PDF??赡苄枰獮殄e誤報告方面的事情工作,但到目前為止已經可以解決問題。


import StringIO

from cgi import escape

from xhtml2pdf import pisa

from django.http import HttpResponse

from django.template.response import TemplateResponse

from django.views.generic import TemplateView


class PDFTemplateResponse(TemplateResponse):


    def generate_pdf(self, retval):


        html = self.content


        result = StringIO.StringIO()

        rendering = pisa.pisaDocument(StringIO.StringIO(html.encode("ISO-8859-1")), result)


        if rendering.err:

            return HttpResponse('We had some errors<pre>%s</pre>' % escape(html))

        else:

            self.content = result.getvalue()


    def __init__(self, *args, **kwargs):

        super(PDFTemplateResponse, self).__init__(*args, mimetype='application/pdf', **kwargs)

        self.add_post_render_callback(self.generate_pdf)



class PDFTemplateView(TemplateView):

    response_class = PDFTemplateResponse

像這樣使用:


class MyPdfView(PDFTemplateView):

    template_name = 'things/pdf.html'


查看完整回答
反對 回復 2019-11-21
  • 3 回答
  • 0 關注
  • 940 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號