python 将阿拉伯字符绘制到位图

6ovsh4lw  于 2023-02-02  发布在  Python
关注(0)|答案(1)|浏览(157)

我一直在尝试打印阿拉伯字符使用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'

waxmsbnn

waxmsbnn1#

在这种情况下,您需要使用特定的字体。请下载任何支持阿拉伯语的字体。例如:我使用了“arial-unicode-ms.tff”。
将下载的字体保存在编写代码的同一文件夹中。

from PIL import Image, ImageFont, ImageDraw

image = Image.new("RGB",[320,320])
draw = ImageDraw.Draw(image)
a = 'محمد'
font = ImageFont.truetype("arial-unicode-ms.ttf", 14)
draw.text((50, 50), a, font=font)
image.save("image.png")

相关问题