Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#3

Re: Maßeinheitengenau ein Canvas ausdrucken

  Alt 27. Mär 2007, 15:54
Zitat von PAX:
Beispielsweise dürften 50 Pixel auf verschiedenen Druckern unterschiedliche Längen haben, oder irre ich mich?
Hi,
da hast Du schon recht, aber das Problem geht noch ein kleines Stück weiter, selbst auf einem Drucker können 50 Pixel unterschiedliche Längen/Größen haben. Immerhin unterstützen die meisten Drucker unterschiedliche Auflösungen. Die Auflösung gibt nun gerade an, wieviele Pixel / Maßeinheit gesetzt werden. Je geringer also die Auflösung, desto größer jedes Pixel.
Alles was Du also machen musst ist auf die Auflösung zu achten. Dazu gibt es zwei Möglichkeiten:
  1. SetMapMode
  2. GetDeviceCaps

Das sind zwei Funktionen, die Windows zur Verfügung stellt (einfach in der API-Hilfe bzw. im PSDK nachschauen). Mit der ersten Methode setzt Du den MapMode eines Canvas. Dieser Modus passt an, in welcher Einheit Du Angaben zur Position machst. Hier kannst Du z.B. Millimeter oder zehntel millimeter wählen. Statt nun eine Linie von x-Pixeln würdest Du damit eine Linie von x-millimeter zeichnen.

Mit der Methode GetDeviceCaps (ebenfalls API-Hilfe bzw. PSDK) kannst Du Eigenschaften eines Canvas abfragen. Die für Dich interessanten Eigenschaften dürften dann natürlich in der Auflösung liegen. Kennst Du die Auflösung, musst Du dich um das Umrechnen von Deinen Pixelangaben kümmern.

Gruß Der Unwissende
  Mit Zitat antworten Zitat