我在PIL Image
中有一个二维码,并带有一些阿拉伯文字,并试图将二维图放在pdf文件中。
我正在使用reportlab.pdfgen
的{{1}}。
经过大量搜索,我发现canvas
是某人的项目无效,并且在阅读了arabic_reshaper
的源代码之后,我发现我需要安装textobject.py
并使用pyfribidi
没事。
我正在使用存储库中所述的drawString(x,y,"مربحا",RTL)
和arabic_reshaper
中的RTL
pyfribidi
结果总是相同的,正如您在右侧看到的那样,英语字符串正常显示,阿拉伯字符串显示为黑色像素:
如果您对其他图书馆有其他建议,也将不胜感激。
答案 0 :(得分:0)
感谢一些开发人员,他们指出问题是由我能够解决的字体引起的。
首先,我下载了阿拉伯语TTF
字体,并在使用linux
时将其放在'/usr/share/fonts'
中,然后执行以下操作:
import reportlab
import arabic_reshaper
from bidi.algorithm import get_display
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
// BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
reportlab.rl_config.TTFSearchPath.append(str(settings.BASE_DIR))
pdfmetrics.registerFont(TTFont('Arabic', '/usr/share/fonts/tradbdo.TTF'))
ar = arabic_reshaper.reshape(u'العربية')
ar = get_display(ar)
canvas.setFont('Arabic', 32)
canvas.drawString(x - 100, y, ar)
现在一切正常。