假设我有一段阿拉伯语片段:
另一方面,也有人会将此一情况与否,而此两种情况又是如何进行的,而另一种情况则是如何仅通过一项仅能将一项仅产产一次的情况的情况,而另一方面则是如何通过该项产产产产إ产产产产إ产产产产أ产产产أ产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产的一个产产产产的是一个,另一个产产的产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产另一方面,则是如何利用第二款的情况,而另一方面则是如何利用第二款的情况,而另一方面则是如何利用第二款的情况,而另一方面则是如何利用第二款的情况,而另一方面则是如何产产产产157;157;157;157;;157;;的;;;;;و;;;怎样的 怎样通过的怎样的怎样的怎样怎样的怎样的怎样的怎样的怎样的159;;怎样的产产产产产产产产产产产产另一方面,该公司更是将该公司的情况与该公司的情况进行了对比,而该公司则是将该公司的情况与该公司的情况进行了对比,而该公司又将该公司的情况与该公司的情况进行了比较,而该公司又将该公司的情况与该公司的情况进行了对比,而该公司的主要是如何将该公司的情况与该公司的情况进行了对比,而该公司是如何将该公司的情况与该公司的情况进行了对比,而该公司是如何将该公司的情况与该公司的情况进行的,而该公司是如何将该公司的情况与该公司的情况进行的,而该公司的情况是如何通过该公司的方式进行的,而该公司是如何通过该公司的方式进行的,而该公司如何通过该公司的情况如何将该公司的情况与如何将如何将ة
在英语中,这应该意味着:“如果我们考虑到气候变化和年际变化的性质,以及长期增加的测量和计算精度不足的因素……”
现在我想将其呈现为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。您可以看到文本本身是正确的和可读的(至少对于googletranslate),但并没有像RTL脚本那样被包装。在
使用wordwrap模块和
<br>
标记拆分行;这并不完美,因为每个段落的顶部都有一个空行,但它是一些用例的简单解决方案如果使用this branch of Report lab that adds RTL support
并从代码中删除这一行:
您的代码将正常运行
因为它们已经用PyFriBiDi的分支解决了 如您所见here:
(该页面上的SVN链接不再工作,因此您应该使用我包含的bitbucket链接!)在
我已成功运行了您代码的此修改版本并生成了正确的结果:
^{pr2}$使用以下代码。它能很好地包装它。在
相关问题 更多 >
编程相关推荐