如何使用xhtml2pdf生成在模板中具有波斯数据的pdf文件

时间:2018-11-06 06:44:39

标签: python django xhtml2pdf

我在使用Django生成pdf时遇到问题。在我的模板中,我有波斯语数据,例如احمدومحمود,但是当pdf文件显示波斯语数据像这样散列时。 这是我的观点

def render_to_pdf(template_src, context_dict={}):
     template = get_template(template_src)

     html = template.render(context_dict)
     result = BytesIO()
     print(html)
     pdf = pisa.pisaDocument(BytesIO(html.encode("utf-8")), result )

     if not pdf.err:
          return HttpResponse(result.getvalue(), 
                              content_type='application/pdf')
     return None

这是称为模板的功能

 def mypdf(request):
        pdf = render_to_pdf('viewpdf.html')
        return HttpResponse(pdf, content_type='application/pdf')

这是我的模板

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
      "http://www.w3.org/TR/html4/loose.dtd">
     `enter code here`<html>
     <head>
       <meta charset="utf-8">
         <title>Title</title>
         <style type="text/css">
             body {
                 font-weight: 200;
                 font-size: 14px;
             }
             .header {
                 font-size: 20px;
                 font-weight: 100;
                 text-align: center;
                 color: #007cae;
             }
             .title {
                 font-size: 22px;
                 font-weight: 100;
                /* text-align: right;*/
                padding: 10px 20px 0px 20px;
             }
             .title span {
                 color: #007cae;
             }
             .details {
                 padding: 10px 20px 0px 20px;
                 text-align: left !important;
                 /*margin-left: 40%;*/
             }
             .hrItem {
                 border: none;
                 height: 1px;
                 /* Set the hr color */
                 color: #333; /* old IE */
                 background-color: #fff; /* Modern Browsers */
             }
         </style>
     </head>
     <body>
         <div class='wrapper'>
             <div class='header'>
                 <p class='title'>Invoice # </p>
             </div>
         <div>
         <div class='details'>
            <h1>احمدومحمود</h1>
             <hr class='hrItem' />
         </div>
     </div>
     </body>
 </html>

最后是输出: enter image description here

0 个答案:

没有答案