我一直在尝试打印阿拉伯字符使用SPRT热敏打印机与python-escpos包,但我似乎找不到任何解决方案,所以我决定提请阿拉伯字符位图,然后打印它.但这也不工作..
这是用于将文本转换为位图的代码:'
from PIL import Image, ImageDraw, ImageFont
img = Image.new('L', (100, 10))
d = ImageDraw.Draw(img)
a = 'محمد'
d.text((1,1), f"{a}",255)
img.save('pil_text.png')
'
导致错误:UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-3: ordinal not in range(256)
此外,我尝试使用UTF-8和1256对字符串进行编码,但两者都没有给予我正确的字符:b'\xd9\x85\xd8\xad\xd9\x85\xd8\xaf'
1条答案
按热度按时间waxmsbnn1#
在这种情况下,您需要使用特定的字体。请下载任何支持阿拉伯语的字体。例如:我使用了“arial-unicode-ms.tff”。
将下载的字体保存在编写代码的同一文件夹中。