我有一个使用PIL将文本写入图像的python脚本。这一切都很好,除非我遇到带有回车符的字符串。我需要在文本中保留回车符。而不是将回车写入图像,我得到一个小盒子字符,返回应该是。以下是编写文本的代码:
<code>
draw = ImageDraw.Draw(blankTemplate)
draw.text((35 + attSpacing, 570),str(attText),fill=0,font=attFont)
</code>
attText是我遇到问题的变量。我在写它之前将它转换为字符串,因为在某些情况下它是一个数字。
谢谢你的帮助。
答案 0 :(得分:7)
让我们想一下。 “回归”意味着什么?这意味着向左移动一段距离,向下移动一段距离并继续显示字符。
你必须做以下事情。
y, x = 35, 570
for line in attText.splitlines():
draw.text( (x,y), line, ... )
y = y + attSpacing
答案 1 :(得分:0)
您可以尝试以下代码,该代码完全符合我的需求:
# Place Text on background
lineCnt = 0
for line in str(attText):
draw = ImageDraw.Draw(blankTemplate)
draw.text((35 + attSpacing,570 + 80 * lineCnt), line, font=attFont)
lineCnt = lineCnt +1
表达式“y + 80 * lineCnt”根据行号将文本向下移动y位置。 (换班因子“80”必须根据字体进行调整。)