mit
SetMapMode(printCanvHandle, mm_himetric);
stellst du die maßeinheit von pixel auf 100tel Millimeter um. Desweiteren ist zubeachten das die y-Achse im Minusbereich ist.
Mit
Delphi-Quellcode:
Printer.Canvas.MoveTo(0, -200);
Printer.Canvas.Line(400, -200);
würdest du also erreichen das eine Line gemalt wird die auf der ausgabe 0 Millimeter von Links, 2 mm von oben bis 4 mm link und 2 mm oben geht.
Also nochmal zusammgengefasst, mit den beiden befehlen (und der vorherigen umstelle der auf mm_himetric), erreichst du das eine Linie von
X: 0mm
Y: 2mm
nach
X: 4mm
Y: 2mm
ausgegeben wird.
Du kannst das ganze ja auch erstmal mit der ausgabe auf einem normalen blatt probieren.
Als beispiel auf einem normalen Blatt würde sich dann folgendes eignen:
Delphi-Quellcode:
Printer.Canvas.Font.Height := 1000;
Printer.Canvas.TextOut(2000, -2000, 'Testtext');
Damit solltest du dann auf dem Blatt den Text "Testtext" sehen welcher 1 cm (1000 100ersten millimeter) hoch ist und 2 cm vom linken Rand entfernt ist.