Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi feste Größe beim Drucken (https://www.delphipraxis.net/9151-feste-groesse-beim-drucken.html)

Tpercon 19. Sep 2003 10:16


feste Größe beim Drucken
 
Ich möchte ein Rechteck ausdrucken, dass immer die Gleiche Größe (Kantenlänge in cm) hat.
Da aber die PageWidth und Height von Drucker zu Drucker unterschiedlich sein kann (auf Grund der DpI Zahl?!), finde ich zur Zeit keinen Ansatz.
Hat jemand eine Idee?

Tpercon 19. Sep 2003 14:09

Re: feste Größe beim Drucken
 
Weiß denn jemand wie man die eingestellte DpI Zahl ermittelt?

r_kerber 19. Sep 2003 15:02

Re: feste Größe beim Drucken
 
Hallo Tpercon,

da wirst Du Dich wohl in die Tiefen der Win-API begeben müssen. Nur ein paar Stichworte: SetMapMode, GetDCEx, GetSystemMetrics , ...

Tpercon 23. Sep 2003 09:38

Re: feste Größe beim Drucken
 
Habe mich gestern versucht damit zu befassen, doch leider nichts irgendwie in die Richtung DPI herausbekommen. Daher bin ich wieder ganz am Anfang.
Hat vielleicht jemand noch ein genaueres Beispiel oder sonst einen Rat?

Jan 23. Sep 2003 11:42

Re: feste Größe beim Drucken
 
für ein 300 * 100 großes Rechteck versuche:

rechteck.top: frei wählbarer Abstand zum oberen Bildrand;
rechteck.left: frei wählbarer Abstand zum linken Bildrand;
rechteck.right: rechteck.left + Printer.pagewidth div 1024 * 300;
rechteck.bottom; rechteck.top + printer.pageheight div 768 * 100;

Das natürlichnur für den Fall, dass das Rechteck auf der Auflösung 1024 * 768 eine vorteilhafte Größe hat.
Das ist allerdings unabhängig von deiner Bildschirmauflösung. Kannst die Zahlen ja auch ändern.
Die einzige Abweichung die du jetzt bei der Rechteckgröße noch bekommen solltest ist der %-Satz den der jeweilige Drucker gegenüber einem anderen Drucker an Rahmen mehr oder weniger um das Papier macht.

Hoffe das hilft dir ein bisschen!
Gruß
Jan

Tpercon 23. Sep 2003 12:59

Re: feste Größe beim Drucken
 
Wieso soll das rein logisch, dann überall gleich groß sein :?:
Auf einem Drucker, der mit 600 DPI druckt ist es doch kleiner, als auf einem der 300 DPI druckt. Du änderst doch nur nen Faktor?!

SirThornberry 23. Sep 2003 13:09

Re: feste Größe beim Drucken
 
also wenn ich die Frage recht verstanden hab müsste es gehen wenn du mit

SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC);

die einheit der Printer Canvas auf 1/10 mm stellst.
danach solltest du mit

printer.Canvas.FillRect(0,0,100,-100);

ein Quadrat aufm Blatt haben das 1 cm mal 1cm groß ist unabhängig von der dpi zahl des druckers

Tpercon 23. Sep 2003 13:24

Re: feste Größe beim Drucken
 
Ich probier es heute Abend gleich aus, wobei ich gestern eigentlich schon damit rum probiert hatte. :gruebel:
Wobei ich hatte das "Positive x is to the right; positive y is up." nicht beachtet und nur positive Werte genommen. Das leere Blatt kann also daher kommen.

Jan 23. Sep 2003 16:47

Re: feste Größe beim Drucken
 
@typercon
Das stimmt nicht.
wenn die Auflösung des Druckers Niedriger ist, dann ist die auch die Pagewidth/height niedriger und damit wird der quotient von den seitenmaßen und der Auflösung kleiner, was zur folge hat, dass das produkt von der Auflösung des Rechtecks und dem Quotienten entsprechend niedriger ist, bei einer niedrigen Druckauflösung also genauso gross wie bei einer höheren. Toll Wa?? Hab ich auch ne weile dran geackert bis ich das mal in mein Hirn reingepresst hatte. 8)

Vielleicht probierste das einfach mal!
Gruß
Jan


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