4

reportlab を使用してレポートを生成しようとしていますが、レポートの言語はアラビア語です。しかし問題は、Python でBIDI アルゴリズムがサポートされていないため、reportlab が BIDI (双方向) 表示をサポートしていないことです。たくさんのグーグル検索の後、 Gnome Fribidiの周りにPyFribidiというラッパーがあることがわかりました。しかし、それはLinuxでのみコンパイルおよび実行されます.mingwinを使用してWindowsでビルドしようとしましたが、多くのLinuxライブラリが見つからないため、コンパイルに失敗しました.

私の質問は、Windows で実行される、Python での Unicode 双方向アルゴリズムの実装はありますか?

ありがとう。

4

4 に答える 4

3

Python BiDiは優れた BiDi アルゴリズムの実装ですが、アラビア語スクリプトのコンテキスト形式を修正せずに双方向 (現状のまま) をサポートするだけです。コンテキスト形式の問題を解決するには、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 実装です。

于 2012-09-28T21:43:38.973 に答える
2

その間、Python でアラビア語のシェーピングを実装しました。

https://github.com/behdad/pyarabicshaping

于 2013-06-25T04:01:46.283 に答える
1

Unicode 双方向アルゴリズムの別の純粋な Python 実装を次に示します: http://code.google.com/p/pybidi/

于 2012-08-12T22:40:30.407 に答える
1

python-bidi http://pypi.python.org/pypi/python-bidi/は純粋な python API であるため、おそらく Windows 上で正常に動作するはずです。

reportlab の RL ブランチを使用し、pyfribidi への呼び出しを python-bidi への呼び出しに変更する必要があります。このリンクが役立つかもしれませんhttp://code.pediapress.com/wiki/wiki/RightToLeft

于 2011-07-21T13:58:28.510 に答える