Text formatiert drucken

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Opa Hansi
User
Beiträge: 16
Registriert: Sonntag 12. März 2023, 10:21

Hallo,
ich will einen Text auf Papier drucken. Dabei will ich den Text mal linksbündig, mal rechtsbündig und mal zentriert ausgeben.
Nur zentriert funktioniert nicht, der Text erscheint links oben auf dem Blatt. Die anderen DT_ Konstanten habe ich auch probiert.
Im Feld esatz[] steht der Datensatz mit allen Parametern, ist hier aber unerheblich.

Code: Alles auswählen

        if esatz[11]=="l":
                align = win32con.DT_LEFT
        elif esatz[11]=="r":
                align = win32con.DT_RIGHT
        else:
                align = win32con.DT_CENTER
                
        dc.SetTextAlign(align)
        dc.SelectObject(font)
        
        dc.TextOut(int(esatz[4]*fl), -int(esatz[5]*fl),esatz[9])
Wo finde ich Erläuterungen zu TextOut(), SetTextAlign(), Text in Farbe ausgeben ???

Danke für Eure Mühe!
Opa Hansi
User
Beiträge: 16
Registriert: Sonntag 12. März 2023, 10:21

Ich habe ein bischen probiert. Die Funktionen aus win32gui sind in der win32ui.pyd nicht 1:1 enthalten. Ich habe noch dc.SetTextColor() gefunden. Jetzt kann ich auch Texte farbig drucken. Die Farben RGB sind aber vertauscht:

Code: Alles auswählen

dc.SetTextColor(int(0x008000))  #grün
dc.SetTextColor(int(0xFF0000))  #blau
dc.SetTextColor(int(0x000000))  #schwarz
Die Textausrichtung mit dc.SetTextAlign() geht so:

Code: Alles auswählen

dc.SetTextAlign(win32con.TA_LEFT)
dc.SetTextAlign(win32con.TA_RIGHT)
dc.SetTextAlign(win32con.TA_CENTER)
Wieder was gelernt !!!
Antworten