Entwickler-Ecke

Basistechnologien - Enthält eine Font ein bestimmtes Zeichen?


k-weddige - Sa 22.11.08 15:56
Titel: Enthält eine Font ein bestimmtes Zeichen?
Moin,

ich verwende in meinem Programm die Zeichen ♂ und ♀, die leider nicht von jeder Schriftart dargestellt werden. Konkret bedeutet das, dass unter XP die Zeichen nicht angezeigt werden, wärend es unter Vista keine Probleme gibt. (Jeweils die Standardeinstellung des OS betrachtet)

Jetzt suche ich eine Möglichkeit einen Alternativtext einzublenden, heißt herauszufinden, ob die eingestellte Font die beiden Zeichen unterstützt.

Geht das irgendwie?

TIA
Konstantin


Th69 - Mo 24.11.08 12:08

Dies ist nicht so einfach zu ermitteln. M.E. gibt es (leider) keine Funktino, welche das direkt erledigt...
Aber als Ausgangspunkt würde ich die WinAPI-Funktion 'GetFontUnicodeRanges' verwenden. Du müßtest dann die zurückgegebene Struktur GLYPHSET überprüfen, ob das entsprechende Zeichen innerhalb der angegebenen Unicode-Ranges sich befindet.
(Das einfachste wird sein, dies direkt in C bzw. C++ zu schreiben und dann per P/Invoke auf die DLL zuzugreifen).

Wobei anzumerken ist, daß du nicht unbedingt die richtigen Zeichen dargestellt bekommst (falls in einem anderen Font für den gleichen Unicode ein anderes Zeichen enthalten ist).

P.S: Als Alternative kann ich dir den Font "Arial Unicode MS" empfehlen (dieser ist auch unter XP standardmäßig verfügbar). Dieser enthält schon einen großen Bereich an Zeichen, auch die beiden Geschlechtersymbole (U+2640 und U+2642).