Windows的pyfribidi或其他比迪算法

发布于 2021-01-29 14:10:17

我正在尝试使用reportlab生成报告,并且报告语言为阿拉伯语。但问题是由于缺少Python对BIDI算法的支持,reportlab不支持BIDI(双向)显示。经过大量的搜寻之后,我发现Gnome
Fribidi周围有个包装纸,叫做PyFribidi。但是它编译并仅在Linux上运行,我尝试使用mingwin在Windows上构建它,但是编译失败,因为找不到大量的Linux库。

我的问题是,是否有在Windows上运行的python中的Unicode双向算法实现?

谢谢。

关注者
0
被浏览
95
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    Python BiDi是一种很棒的BiDi算法实现,但是它仅支持双向(As
    Is),而没有修复阿拉伯脚本的上下文形式,要解决上下文形式问题,您应该将python-
    bidi模块与一个名为python-的阿拉伯整形器库一起使用阿拉伯整形器

    示例:(来自=> http://mpcabd.igeex.biz/python-arabic-text-
    reshaper/)

    import arabic_reshaper
    from bidi.algorithm import get_display
    
    #...
    reshaped_text = arabic_reshaper.reshape(u'اللغة العربية رائعة')
    bidi_text = get_display(reshaped_text)
    pass_arabic_text_to_render(bidi_text)
    #...
    

    它完美地解决了我的问题,并且两个软件包都是纯python实现。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看