Einzelnen Beitrag anzeigen

Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Drucken: Device Units = Pixel?

  Alt 2. Aug 2004, 01:24
Zitat:
Setze lieber den MapMode mit SETMAPMODE entsprechen auf Millimeter oder so, dann hast du es einfacher.
Hmm, warum? Entspricht eine Device Unit denn einem Milimeter?
Wieso ist es einfacher, auf Millimeter umzusteigen, wenn man vorher die ganze Zeit in Pixel rechnet (mal angenommen, es soll ein TBitmap ausgedruckt werden).

Der MapMode ist standardmäßig MM_TEXT. Was halt interessant wäre ist, ob die Koordinate 0/0 auf TPrinter.Canvas physikalisch dem ersten druckbaren oberen linken Punkt entspricht.

Edit:Die Werte von Printer.PageWidth bzw. PageHeight und die Ergebnisse von GetDeviceCaps(Printer.Handle, PHYSICALWIDTH bzw. PHYSICALHEIGHT) ähneln sich halt verdächtig, daher die Annahme.

Bsp: Drucker mit 360 DPI, DIN A4 Hochformat:

---------------------------
Project1
---------------------------
Links die Ergebisse von GetDeviceCaps in "Device Units"
Rechts die Eigenschaftswerte von TPrinter in Pixel

Seitenbreite: 2976/2878
Seitenhöhe: 4209/4066

Druckränder: X: 49 Y: 43
---------------------------
OK
---------------------------
Dani H.
  Mit Zitat antworten Zitat