(Moderator)
Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
Delphi 2006 Professional
|
Re: Bild drucken
3. Apr 2005, 11:16
du hast es doch schon fast da stehen
StretchBlt(Printer.Canvas.Handle, 0, 0, 100, 100, Image1.Canvas.Handle, 0, 0, 100, 100, SRCCOPY);
nur das du dort 0, 0 als obere linke ecke angegeben hat. Um diese zu ändern musst du es nur noch wie folgt abändern:
StretchBlt(Printer.Canvas.Handle, AbstandVonLinks, AbstandVonOben, 100, 100, Image1.Canvas.Handle, 0, 0, 100, 100, SRCCOPY);
Wenn du dies jetzt so ausprobierst müsstest du allerdings feststellen das dein bild nicht gedruckt wird. Grund ist das der Y-Wert von oben nach unten kleiner wird. Die Blatt oberkannte ist also 0 und der untere Bildrand ist dann -Blatthöhe. Durch diese Verdrehung wird dein Bild auch auf dem Kopfstehend ausgedruckt falls du das bild wie folgt druckst.
StretchBlt(Printer.Canvas.Handle, AbstandVonLinks, -(AbstandVonOben + Image1BildhöheIn10mm), 100, 100, Image1.Canvas.Handle, 0, 0, 100, 100, SRCCOPY);
Du musst also vorher das bild auch noch spiegeln. Desweiteren musst du hoffen das dein drucker dann auch wirklich das bild druckt, denn nicht jeder drucker druckt bilder aus die auf diese art und weise auf die Canvas des Druckers gebracht werden.
Jens Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
|