pyfribidi for windows或任何其他bidi算法

2024-09-28 05:19:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用reportlab生成一个报告,报告语言是阿拉伯语。但问题是reportlab不支持BIDI(Bidirection)显示,因为Python中缺少BIDI Algorithm支持。经过大量的google搜索,我发现在Gnome Fribidi周围有一个名为PyFribidi的包装器。但是它只在Linux上编译和运行,我试图用mingwin在windows上构建它,但是编译失败了,因为很多Linux库没有找到。在

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

谢谢。在


Tags: 语言linuxwindows报告googleunicodealgorithmgnome
3条回答

Python BiDi是一个很好的BiDi算法实现,但它只支持双向(As-is),而不修复阿拉伯语脚本的contextual form,要解决上下文形式问题,应该使用python BiDi模块和一个名为python-arabic-reshaper的阿拉伯语整形器库。在

示例:(from=>;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实现。在

同时,我在Python中实现了阿拉伯语整形:

https://github.com/behdad/pyarabicshaping

python bidihttp://pypi.python.org/pypi/python-bidi/是一个纯python API,因此它应该可以在windows上正常工作。在

您需要使用reportlab的RL分支,将对pyfribidi的任何调用更改为对python bidi的调用。此链接可能有助于http://code.pediapress.com/wiki/wiki/RightToLeft

相关问题 更多 >

    热门问题