Man sollte auch nicht in Pixel drucken, da 100 Pixel auf einem 150dpi Drucker größer als auf einem 600dpi Drucker sind. Man kann Windows jedoch beibringen, in 1/10 mm zu drucken und dass gilt dann für jeden Drucker.
Code:
Printer.BeginDoc;
SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC); [i]// 1/10 mm[/i]
Printer.Canvas.Font.Height := 50; [i]// 5 Millimeter
// Seitengröße in 1/10 mm ermitteln[/i]
PageWidth := GetDeviceCaps(Printer.Canvas.Handle, HORZSIZE) * 10;
PageHeight := GetDeviceCaps(Printer.Canvas.Handle, VERTSIZE) * 10;
[b]with[/b] Printer.Canvas [b]do[/b]
[b]begin[/b]
TextOut(100, -100, 'Hier ist 1cm/1cm');
[b]end[/b];
Printer.EndDoc;
Alle Y-Koordinaten werden dabei negativ abgetragen.