2

使用以下代码在输出 pdf 上显示阿拉伯语出错:

template = get_template(template_src)
context = Context(context_dict)
html = template.render(context)
result = StringIO.StringIO()    
pdf = pisa.pisaDocument(StringIO.StringIO(
        html.encode(pdf_encoding)), result, encoding=pdf_encoding) # pdf_encoding = 'utf-8'

在模板中我设置了字符集和字体:

<meta http-equiv="content-type" content="text/html; charset=utf-8">
@font-face {
              font-family: AmiriRegular;
              src: url(/usr/share/fonts/opentype/fonts-hosny-amiri/amiri-regular.ttf);
            }
            body { font-family: AmiriRegular; }

输出: 在此处输入图像描述

快照中的阿拉伯文本应该是:

ياسر حسن
4

1 回答 1

0

我认为一种解决方案是手动传递这些阿拉伯文本并使用这两个库重塑它们:

import arabic_reshaper
from bidi.algorithm import get_display

reshaped_text = arabic_reshaper.reshape('your desired text in arabic')
bidi_text = get_display(reshaped_text)
于 2020-02-25T23:48:10.580 回答