Korrekte Größe beim Drucken von Grafiken

Enabran

Grünschnabel
Hallo zusammen,

ich bin noch ziemlicher C#-Anfänger und taste mich langsam voran. Zurzeit sieht mein Problem so aus: Ich stelle auf dem Bildschirm ein CD-Cover dar (mit einigen Rechtecken und einigem Text per DrawString). Auf dem Schirm sieht das auch alles ganz toll aus, aber sobald ich es ausdrucke, ist das Cover zu klein. Ich habe versucht die Einheit mit

Code:
Graphics g = e.Graphics;
g.PageUnit = GraphicsUnit.Millimeter;

zu ändern; dann müsste man ja in Millimetern genau die Werte angeben können. Nach dem ersten Versuch habe ich nun aber festgestellt, dass z. B. der Rahmen des äußeren Rechtecks halt genau einen Millimeter breit ist (vorher ein Pixel). Bei einem Versuch mit

Code:
GraphicsUnit.Point;

stimmte die Rahmendicke wieder (1 Pixel), aber der Ausdruck war etwas zu groß.

Also ein paar Fragen:

1) Wie bekomme ich bei Einheit Millimeter dünnere Linien hin?
2) Ist das überhaupt der richtige Weg, oder kann ich meine Pixelangaben irgendwie weiterverwenden (dann müsste ich nicht alles in Millimeter umrechnen und für die Darstellung auf dem Bildschirm wär's einfacher)?
3) Gibt's nicht vielleicht irgendeine (möglichst einfache :)) Patentlösung für diese Art Druckproblem?

Danke + Gruß

Enabran
 
Könnte vielleicht an den DPI (Dots per Inch = Punkte pro Zoll) liegen. Die sagen dem Drucker wie viele Punkte er innerhalb eines Zolls (ca. 2,54 cm wenn ich mich nicht täusche *g*) machen soll. Vielleicht liegt da der Hund begraben.

Hab noch einen nützlichen Link für Dich:

Converting Millimeters To Pixel
 
Danke Saber, das war der entscheidende Tipp! So klappt's perfekt:

Code:
float mmPerInch = 25.4F;   // Anzahl Millimeter pro Zoll
Breite = (Graphics.DpiX / mmPerInch) * BreiteInMillimetern;
Hoehe = (Graphics.DpiY / mmPerInch) * HoeheInMillimetern;
 

Neue Beiträge

Zurück