首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django - pdf响应有错误的编码- xhtml2pdf

Django - pdf响应有错误的编码- xhtml2pdf
EN

Stack Overflow用户
提问于 2017-08-15 16:31:47
回答 1查看 2K关注 0票数 5

我正在我的Django网站上开发一个发票PDF生成器。我使用xhtml2pdf。它似乎可以工作,但编码不正确。使用变音符号时出现错误的符号/字符。

这是一个视图:

代码语言:javascript
复制
def render_to_pdf(template_src, context_dict):
    template = get_template("pdf/pdf.html")
    context = context_dict
    html  = template.render(context)
    result = StringIO.StringIO()

    pdf = pisa.pisaDocument(StringIO.StringIO(html.encode('utf-8'), result)
    if not pdf.err:
        return HttpResponse(result.getvalue(), content_type='application/pdf; encoding="utf-8"')
    return HttpResponse('We had some errors<pre>%s</pre>' % escape(html))

这是html:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>title</title>
  </head>
  <body>
    <p>Č š ž Ž x y ľ ĺ ó</p>
  </body>
</html>

这是生成的pdf:

你知道如何让它正常工作吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-15 17:09:18

尝试添加字体urls到您的html,不要忘记替换路径和名称

代码语言:javascript
复制
<!DOCTYPE html>
<html>
  <head>
      <style>
        @font-face {
        font-family: FreeSans;
        src: url("/usr/share/fonts/truetype/freefont/FreeSans.ttf");
        }

        body {
        font-family: FreeSans;
        }
    </style>  
    <meta charset="UTF-8">
    <title>title</title>
  </head>
  <body>
    <p>Č š ž Ž x y ľ ĺ ó</p>
  </body>
</html>
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45689236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档