Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Großes Bitmap drucken (plotten) (https://www.delphipraxis.net/27941-grosses-bitmap-drucken-plotten.html)

ak1 17. Aug 2004 16:48


Großes Bitmap drucken (plotten)
 
Hallo Leute,

ich habe ein relativ großes Bitmap welches ich auf einem Drucker ausplotten (drucken) möchte. Die Größe des Bitmaps ist variabel. Ich habe nun das Bitmap auf die vom User eingestellete Blattgröße gestretcht indem ich diese Routine verwende:

Code:
Printer.BeginDoc;
    With Printer.Canvas Do
    Begin
      StretchDraw(Printer.Canvas.ClipRect, bmpMyPrinter);
      Verti := GetDeviceCaps(Printer.Handle, HORZRES);
      Hori := GetDeviceCaps(Printer.Handle, VERTRES);
      FaktorH := Hori / bmpMyPrinter.Height;
      FaktorV := Verti / bmpMyPrinter.Width;
     
    End;
    Printer.Enddoc;
Das funktioniert ganz gut, nur ist das Problem folgendes: Wenn der User eine unpassende Blattgröße in den Druckereinstellungen einstellt, dann sieht der Ausdruck etwas bescheiden aus (ungleichförmig zertstretcht).
Wie würdet ihr das Problem lösen? Würdet ihr das evtl ganz anders machen? Wenn ja wie? Ein Beispiel wäre super.

SirThornberry 17. Aug 2004 17:30

Re: Großes Bitmap drucken (plotten)
 
Ich würde einfach das Seitenverhältnis beibehalten und das bild dabei nicht verzerren lassen.

ak1 18. Aug 2004 09:29

Re: Großes Bitmap drucken (plotten)
 
Jupp habe das Bild jetzt proportional gestrecht:

Code:
Printer.BeginDoc;
    With Printer.Canvas Do
    Begin
      SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC); // Printermode auf 1/10 mm

      Rect(0, 0, druckbildbreite, -1* druckbildhoehe);
      StretchDraw(Printer.Canvas.ClipRect, bmpMyPrinter);
     
    End;
    Printer.Enddoc;


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz