我想了解更多有关在ReportLab中使用阿拉伯语的信息。我听说过fribidi和pyfribidi软件包,并尝试了一下(使用与OPEN ERP配置有关的文档之一),但是不幸的是我没有得到最终结果。在这种情况下,请帮助我。

问候
索吉斯

最佳答案

我们将python-bidi http://github.com/mksoft/python-bidi用于RTL支持,将阿拉伯语Writer https://github.com/hasenj/arabic-writer/wiki用于阿拉伯语支持。

import unicodedata

from bidi.algorithm import get_display
import arabic_rtlize

def drawText(canvas, x,y, text):

    wrkText=text

    isArabic=False
    isBidi=False

    for c in wrkText:
        cat=unicodedata.bidirectional(c)

        if cat=="AL" or cat=="AN":
            isArabic=True
            isBidi=True
            break
        elif cat=="R" or cat=="RLE" or cat=="RLO":
            isBidi=True

    if isArabic:
        wrkText=arabic_rtlize.forms.fuse(wrkText)
        wrkText=arabic_rtlize.process.shape(wrkText)

    if isBidi:
        wrkText=get_display(wrkText)

    canvas.drawString(x, y, wrkText)

08-26 15:51