このアラビア語のスニペットがあるとしましょう:
إذالبارطبي頭البالمن救い
英語では、これは次のような意味になります。「<em>気候変動と年々変動の性質、および使用される測定と計算の精度の欠如に長期的に加えられるものを考慮に入れると…</em>. 」</p>
今、Reportlab PDF doc (python) としてレンダリングしたい:
arabic_text = u'إذا أخذنا بعين الإعتبار طبيعة تقلب المناخ و المتغيرات البينية السنوية و تلك على المدى الطويل إضافة إلى عدم دقة القياسات والحسابات المتبعة'
arabic_text = arabic_reshaper.reshape(arabic_text) # join characters
arabic_text = get_display(arabic_text) # change orientation by using bidi
pdf_file=open('disclaimer.pdf','w')
pdf_doc = SimpleDocTemplate(pdf_file, pagesize=A4)
pdfmetrics.registerFont(TTFont('Arabic-normal', '../fonts/KacstOne.ttf'))
style = ParagraphStyle(name='Normal', fontName='Arabic-normal', fontSize=12, leading=12. * 1.2)
style.alignment=TA_RIGHT
pdf_doc.build([Paragraph(arabic_text, style)])
pdf_file.close()
結果はこちらhttps://www.dropbox.com/s/gdyt6930jlad8id/disclaimer.pdf . テキスト自体は正確で読みやすい (少なくとも Google 翻訳の場合) ことがわかりますが、RTL スクリプトでは期待どおりにラップされていません。