![]() |
Drucken: Größe von TImage übernehmen?
Ich drucke mir den Inhalt von TImage wie folgt aus:
Delphi-Quellcode:
Leider wird die Größe von Timage auf dem Druckergebnis nicht beibehalten. Wie könnte man dieses Problem lösen?
procedure TVorschau2.Button1Click(Sender: TObject);
var rect : TRect; begin if PrinterSetupDialog1.Execute then begin with printer.canvas do begin Printer.BeginDoc; rect:=Bounds(-10,-10,printer.pagewidth div 2,printer.pageheight div 2); StretchDraw(Rect,image1.picture.Graphic); Printer.EndDoc; end; end; |
Re: Dröcken: Größe von TImage übernehmen?
und wievern sollte die größe den beibehalten werden? Also welche Größe soll das Bild auf dem Ausdruck haben? Und wie ist das Resultat mit deinem Quelltext?
|
Re: Dröcken: Größe von TImage übernehmen?
Die gesamte Fläche von TImage. Height: 457 Width: 465. Das jetzige Resultat sieht momentan so aus, das die Breite zur Hälfte gestaucht ist.
|
Re: Dröcken: Größe von TImage übernehmen?
Hi,
du aber das ist doch fast dass, was du dem Drucker sagst. Zitat:
Immer noch gezerrt aber etwas besser wäre ein
Delphi-Quellcode:
So richtig schön wird es aber erst, wenn du ausrechnest wie du es optimal strecken kannst und das Seitenverhältnis gleich lässt.
rect := Bounds(-10,-10,printer.pagewidth div 2,printer.pagewidth div 2);
Desweiteren kannst du hier im Forum noch einiges zum Drucken finden, insbesondere solltest du nach GetDeviceCaps suchen (da kannst du auch den Rand des Druckers bestimmen und die Einheiten festlegen, denn je nach Auflösung ist ein Pixel nicht gleich einem Pixel, was die Größe angeht!) Gruß Der Unwissende |
Re: Dröcken: Größe von TImage übernehmen?
Ehrlich gesagt kann ich keinen Unterschied zu meiner Codezeile finden.
|
Re: Dröcken: Größe von TImage übernehmen?
Der ist auch sehr klein, ich hab zweimal die pageWidth div 2 verwendet. Das ist einfach nur näher an dem eigentlichen Seitenverhältnis dran. Das exakte bekommst du dann mit dem Dreisatz.
|
Re: Dröcken: Größe von TImage übernehmen?
Na nun ist ja alles vorbei. Das ist gut und gerne mehrere Jahre her, wo ich letzmalig einen Dreisatz angewandt hatte.
|
Re: Dröcken: Größe von TImage übernehmen?
Na so lange wird es schon nicht her sein. Ausserdem sollte man den eh nicht vergessen.
Aber was macht man so schön, wenn man eine Lösung nicht mehr kennt, man leitet sie sich einfach her! Worum es hier geht ist doch eigentlich nur das Verhältnis von Höhe und Breite. Dabei muss einfach nur das Verhältnis von Image.Height zu Image.Width = PageHeight zu PageWidth sein. Die Größe des Image ist dabei fest durch die Grafik gegeben (damit auch das Verhältnis). Nun hast du die Auswahl, du kannst entweder eine Höhe oder die Breite für das gedruckte Image festlegen. Hier kannst du natürlich dann wieder schauen, was optimal (für ein max. großen Druck) ist. Sagen wir einfach du legst fest, dass die halbe Seite als Breite dienen soll. Dann hast du ein Gleichsystem mit einer unbekannten (die Höhe des Drucks). Stell einfach um und du hast (Image.Height / Image.Width) * PageWidth = PageHeight. Das ganze machst du nun in Delphi und rundest schön, fertig. |
Re: Dröcken: Größe von TImage übernehmen?
Oh, wie peinlich. :oops: Bin wieder von selbst drauf gekommen. Danke
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz