AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Muss ich bei Druckausgabe meinen Algorithmus abändern?
Thema durchsuchen
Ansicht
Themen-Optionen

Muss ich bei Druckausgabe meinen Algorithmus abändern?

Ein Thema von daschaos · begonnen am 20. Aug 2007 · letzter Beitrag vom 22. Aug 2007
Antwort Antwort
daschaos

Registriert seit: 23. Mai 2007
117 Beiträge
 
Delphi 2006 Professional
 
#1

Muss ich bei Druckausgabe meinen Algorithmus abändern?

  Alt 20. Aug 2007, 09:13
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
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: Muss ich bei Druckausgabe meinen Algorithmus abändern?

  Alt 20. Aug 2007, 09:46
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.
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Muss ich bei Druckausgabe meinen Algorithmus abändern?

  Alt 20. Aug 2007, 09:55
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
  Mit Zitat antworten Zitat
daschaos

Registriert seit: 23. Mai 2007
117 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Muss ich bei Druckausgabe meinen Algorithmus abändern?

  Alt 22. Aug 2007, 09:43
Ok, hab das jetzt som umgerechnet, danke!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:18 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