Moin!
Ich habe schon die
DP, das SDC und Google durchsucht, bin aber auf kein brauchbares Ergebnis gekommen.
Ich möchte ein Bild ausdrucken und dabei den Abstand zu den Seitnrändern und die Maße des Bildes in Millimeter angeben können.
Wie man auf Millimeter umstellt, habe ich gefunden:
SetMapMode(printer.Canvas.Handle, MM_LOMETRIC);
und die Breite der Seite, die für den Drucker eingestellt ist, ebenfalls:
Delphi-Quellcode:
// Seitengröße in 1/10 mm ermitteln
PageWidth := GetDeviceCaps(Printer.Canvas.Handle, HORZSIZE) * 10;
PageHeight := GetDeviceCaps(Printer.Canvas.Handle, VERTSIZE) * 10;
Klar, Millimeter ginge hier auch.
Nun zum eigentlichen Problem: Wie kann ich dem Drucker mitteilen, dass er ein Bild z.B. 15 mm vom oberen Rand und 25 mm vom linken Rand drucken soll, wobei das Bild bei der Ausgabe eine größe von 100 * 200 mm haben sollte?
Mit
StretchBlt komme ich da, glaube ich, nicht weiter, da die Angaben in Pixel sind:
StretchBlt(Image2.Canvas.Handle, 0, 0, 100, 100, Image1.Canvas.Handle, 0, 0, 200, 200, SRCCOPY);