Windows与Amazon Linux下Wand阿拉伯语字体渲染异常求助
Amazon Linux下使用Wand生成阿拉伯语文本图片时变音符号错位问题
问题描述
在Amazon Linux系统上使用Python的Wand库生成包含阿拉伯语文本的图片时,变音符号错误地出现在单词中间。已确认Windows与Amazon Linux环境下的Wand及Python版本均为最新且完全一致:
- Windows环境:阿拉伯语文本(含变音符号)显示正常
- Amazon Linux环境:变音符号位置错乱,偏离正确位置
代码示例
from wand.image import Image as wImage from wand.display import display as wdiplay from wand.drawing import Drawing from wand.color import Color #artext = get_display(reshaped_text) artext = "{" + "وَاصْبِرْ لِحُكْمِ رَبِّكَ" + "}" fonts = ['DroidNaskh-Bold.ttf', 'UthmanTNB_v2-0.ttf', 'aa.ttf' ] draw = Drawing() img = wImage(width=1200,height=(len(fonts)+2)*60,background=Color('#ffffff')) #draw.fill_color(Color('#000000')) draw.text_alignment = 'right'; draw.text_antialias = True draw.text_encoding = 'utf-8' #draw.text_interline_spacing = 1 #draw.text_interword_spacing = 15.0 draw.text_kerning = 0.0 for i in range(len(fonts)): font = fonts[i] draw.font = font draw.font_size = 40 draw.text(int(img.width / 2), int(40+(i*60)),artext) print(draw.get_font_metrics(img,artext)) draw(img) draw.text(int(img.width / 2), int(40+((i+1)*60)),u'ناصر test') draw(img) img.save(filename='arabictest.png') wdiplay(img)
已尝试的解决方案
- 使用bidi库和阿拉伯语文本重塑工具处理文本,但会破坏整句结构,无法解决变音符号错位问题
使用字体为KFGQPC Uthman Taha Naskh,恳请提供有效解决方案。
内容的提问来源于stack exchange,提问作者X III
相关产品推荐
相关产品推荐

