Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Muss ich bei Druckausgabe meinen Algorithmus abändern? (https://www.delphipraxis.net/97984-muss-ich-bei-druckausgabe-meinen-algorithmus-abaendern.html)

daschaos 20. Aug 2007 08:13


Muss ich bei Druckausgabe meinen Algorithmus abändern?
 
Morgen!

Ich habe eine Graphikausgabe, die ich auch gerne vom Anwender ausdrucken lassen würde. Anfangs hab ich das über darüber gelöst, dass ich mir einfach ein Bitmap meiner Ausgabe entsprechend erzeuge und das dann in meiner Print- Methode verwende. Das war zum Testen schön, aber eigentlich möchte ich, dass mein Algorithmus nun einfach auf dem Printer.Canvas statt auf meinem normalen Canvas arbeitet und dementsprechend die Druckausgabe erzeugt. Übergebe also neuerdings immer ein Canvas, entweder das von meiner Form oder des Printers. Er macht das aber nich wirklich schön. Die Pen.Width muss wohl z.B. umgerechnet werden etc...

Jetzt zu meiner Frage. Das Problem ist ja die Skalierung zwischen Bildschirmausgabe und Druckerausgabe. Ich nutze zum Einen einfach den ganzen druckbaren Bereich der auszudruckenden Seite, damit muss ich nich mit irgendwelchen MapModi oder StretchDraw arbeiten. Eigentlich zeichnet er korrekt, aber auch nur eigentlich :(. So schön ist es dann doch nich :). Muss ich jetzt jede Berechnung die ich durchführe, so umrechnen , dass sie der Druckerauflösung entspräche? Also wenn ich zum Beispiel vorher hatte
Width := ARect.BottomRight.X - ARect.TopLeft.Y, muss ich dann jetzt noch zusätzlich (PrinterDPI / 25.4) * Width oder sowas Ähnliches dazurechnen?

Wäre sehr nett, wenn mir da jemand einen Tipp geben könnte!!!

Danke und liebe Grüße,
Laura

Ghostwalker 20. Aug 2007 08:46

Re: Muss ich bei Druckausgabe meinen Algorithmus abändern?
 
Wenn du direkt auf dem Drucker arbeiten möchtest, bleibt dir nichts anderes übrig als deinen Algorithmus dynamisch an die jeweilige Auflösung anzupassen.

Alternativ könntest du einen Reportgenerator verwenden, und auf ein Bitmap zeichnen, das du dem Report mitgibst. Das hätte auch den Vorteil, das du auch nur einen bestimmten Teil der Seite für die Grafik verwenden kannst. Nachteil ist natürlich, das das Bitmap ggf. gestretcht wird.

messie 20. Aug 2007 08:55

Re: Muss ich bei Druckausgabe meinen Algorithmus abändern?
 
Ein Beispiel für eine Berechnung:
Delphi-Quellcode:
function GetPrintSize(dpi,value : integer) : integer;
  begin
    //value ist die Pixelposition auf Form1
    //Einstellung HI_METRIC
    //also Ausgabe in 1/100 mm
    result := round(value/Form1.PixelsPerInch*25.4);
    result := result * 100;        //das sind hundertstel
  end;
Grüße, Messie

daschaos 22. Aug 2007 08:43

Re: Muss ich bei Druckausgabe meinen Algorithmus abändern?
 
Ok, hab das jetzt som umgerechnet, danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:42 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