I'm trying to generate a report using reportlab, and the report language is Arabic. but the problem is reportlab doesn't support BIDI (Bidirection) Display because of the lack BIDI Algorithm support in Python. after alot of googling I found that there is a wrapper around Gnome Fribidi called PyFribidi. but it compiled and runs only on Linux, I tried to build it on windows using mingwin but the compilation fails because a lot of linux libs not found.
My question is, is there any Unicode bi-direction algorithm implementation in python, that runs on windows?
thanks.
Here is another pure Python implementation of the Unicode bidi algorithm: http://code.google.com/p/pybidi/
python-bidi http://pypi.python.org/pypi/python-bidi/ is a pure python API so presumably it should work fine on windows.
You need to use the RL branch of reportlab and changes any calls to pyfribidi with calls to python-bidi. This link might help http://code.pediapress.com/wiki/wiki/RightToLeft
In the meantime I implemented Arabic shaping in Python:
https://github.com/behdad/pyarabicshaping
Python BiDi is a great BiDi algorithm implementation, but it just support bi-direction (As Is) without fixing the contextual form of arabic script, to solve contextual form problem, you should use python-bidi module with an arabic reshaper library called python-arabic-reshaper.
example : (from => http://mpcabd.igeex.biz/python-arabic-text-reshaper/)
it fixes my problem perfectly, and both packages are pure python implementation.