![]() |
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 |
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. |
Re: Muss ich bei Druckausgabe meinen Algorithmus abändern?
Ein Beispiel für eine Berechnung:
Delphi-Quellcode:
Grüße, Messie
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; |
Re: Muss ich bei Druckausgabe meinen Algorithmus abändern?
Ok, hab das jetzt som umgerechnet, danke!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09: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