Ich mach beim Drucken immer einen ganz anderen Ansatz.
Printer.PageWidth liefert die Anzahl der Pixel in horizontaler Richtung und damit kann man damit linksbündig, mittig oder rechtsbündig positionieren:
Delphi-Quellcode:
Printer.Canvas.TextOut (Printer.PageWidth * 5 div 100,
YPosition,
'Linksbündiger Text 5% vom Rand');
Printer.Canvas.TextOut (Printer.PageWidth * 98 div 100 - Printer.TextWidth ('Rechtsbündiger Text 2% vom Rand'),
YPosition,
'Rechtsbündiger Text 2% vom Rand');
Printer.Canvas.TextOut (Printer.PageWidth div 2 - Printer.TextWidth ('Mittiger Text') div 2,
YPosition,
'Mittiger Text');
Ist jetzt nur mal so hingeschrieben, nicht getestet.