You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django xhtml2pdf生成PDF时阿拉伯文本显示异常求助

Django + xhtml2pdf生成PDF时阿拉伯文本显示方块问题未解决

HTML页面中阿拉伯文本可正常显示,但使用Django结合xhtml2pdf生成PDF后,阿拉伯文本变为方块。已尝试多种公开解决方案,问题仍未解决。

所用CSS样式

@import url(https://fonts.googleapis.com/css?family=Markazi+Text);

.markazi-text{font-family:'Markazi Text',serif}

*{
    font-size: 12px;
    padding: 0px;
    margin: 0px;
}
table{
    border: 1px solid #000;
    margin-bottom: 5px;
}
table tr th{
    padding-top: 5px;
    -pdf-word-wrap: CJK;
    padding: 5px;
}
table tr td{
    padding-top: 5px;
    padding-left: 5px;
    width: auto;
    word-break: break-all;
    padding: 5px;
    -pdf-word-wrap: CJK;
}
table tr td p{
    word-break: break-all;
}
p{
    margin: 0px;
    font-family:'Markazi Text';
}
.vendor-sec{
    border: 1px solid #000;
    width: 150px;
    padding: 5px;
    margin-bottom: 15px;
}

所用Django代码

template_path = 'pdf.html'
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="declaration.pdf"'
html = render_to_string(template_path, data)
result = io.BytesIO()

pdf = pisa.pisaDocument(io.BytesIO(html.encode("UTF-8")), dest=result, encoding='UTF-8')
content = result.getvalue()

encoded = base64.b64encode(content)
encoded = encoded.decode('utf-8')

已尝试的解决方案

  • Stack Overflow上关于Pisa阿拉伯语显示问题的问答
  • xhtml2pdf仓库编号345的Issue
  • xhtml2pdf仓库编号494的Issue
  • xhtml2pdf仓库编号72的Issue

PDF显示效果

阿拉伯文本显示为方块

内容的提问来源于stack exchange,提问作者Fayyaz Hussain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 05:10:25