2009-04-14 2 views
1

Ich habe ein Python-Skript, das Text in Bilder mit dem PIL schreibt. Alles funktioniert gut, außer wenn ich Strings mit Wagenrückläufen in ihnen antreffe. Ich muss die Wagenrückläufe im Text beibehalten. Anstatt den Wagenrücklauf auf das Bild zu schreiben, bekomme ich ein kleines Kästchen, wo die Rückkehr sein soll. Hier ist der Code, der den Text schreibt:Schreiben von Text mit Wagenrücklauf zu Bild in Python mit PIL

<code> 
draw = ImageDraw.Draw(blankTemplate) 
draw.text((35 + attSpacing, 570),str(attText),fill=0,font=attFont) 
</code> 

attText ist die Variable, mit der ich Probleme habe. Ich schreibe es auf eine Zeichenkette, bevor ich es schreibe, weil es in manchen Fällen eine Nummer ist.

Danke für Ihre Hilfe.

Antwort

7

Lassen Sie uns einen Moment nachdenken. Was bedeutet eine "Rückkehr"? Es bedeutet, nach links zu gehen, etwas weiter zu fahren und die Charaktere wieder anzuzeigen.

Sie müssen etwas wie das folgende tun.

y, x = 35, 570 
for line in attText.splitlines(): 
    draw.text((x,y), line, ...) 
    y = y + attSpacing 
+0

toll, das hat funktioniert. Danke. – Casey

0

Sie könnten das den folgenden Code versuchen, die für meine Bedürfnisse perfekt gut funktioniert:

# 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 

Der Ausdruck "y + 80 * lineCnt" bewegt den Text nach unten y-Position auf der Linie abhängig Nr. (Der Faktor "80" für die Verschiebung muss entsprechend der Schrift angepasst werden).

Verwandte Themen