TrueType auf feste Größe umrechnen



  • Guten Tag,

    in meinem Programm befindet sich ein Text-Objekt mit einer festen Größe (10mm). Für dieses Objekt kann ich unterschiedliche TrueType-Schriftarten bestimmen. Das Problem ist nur, dass TrueType-Schriften mit der Einheit 'em' dargestellt werden.

    Ich versuche nun einen 'em'-Wert zu ermitteln, der die Schriftart in der angegeben Größe in Millimeter darstellt.

    Mit dem Umrechnungsfaktor (1 em = 4.2175176 mm) habe ich auch keinen Erfolg, da verschiedene Schriften unterschiedlich groß dargestellt werden.

    Ich habe mich auch über den Aufbau eines TrueType-Zeichens erkundigt (http://msdn.microsoft.com/en-us/library/windows/desktop/dd145122(v=vs.85).aspx) und versucht, den Ascent-Wert zu verrechnen. Leider hatte ich keinen Erfolg.

    Kennt sich vielleicht jemand von euch besser mit TrueTypes aus und kann mir bei diesem Problem helfen?

    Danke.



  • Im Font Constructor (String, Single, GraphicsUnit) kannst du sowohl die Einheit als auch die Größe als GraphicsUnit angeben.



  • Danke für die Antwort Rhombicosidodecahedron.

    Ich verwende nicht das Font-Objekt, sondern erzeuge den Text über das GraphicsPath-Objekt mit der Methode "AddString". Dort kann man leider keine GraphicsUnit festlegen.

    Ich habe das Problem nun gelöst, indem ich einen Faktor aus der Größe des Zeichens 'A' der jeweiligen Schrift mit der gewünschten Größe berechne. Danach verrechne ich alle anderen Zeichen mit diesem Faktor, um die komplette Schrift auf die Größe zu bekommen.

    Falls es noch andere Möglichkeiten gibt, wäre ich sehr interessiert.



  • Hilft Font.SizeInPoints, wenn du es von einer Instanz aufrufst, die mit meinem Konstruktor erstellt wurde?


Log in to reply