Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

aus FontFamilyName -> Fontdatei ermitteln

5 views
Skip to first unread message

Ahmed Martens

unread,
Sep 28, 2012, 4:33:46 AM9/28/12
to
Hallo NG,

mit folgendem Code kann ich alle installierten Schriftarten in einer
Listbox einlesen.

<Code>

ListBox1.DisplayMember = "Name"
ListBox1.DataSource = ( _
From FontFamily In Drawing.FontFamily.Families _
Order By FontFamily.Name Ascending).ToList

</Code>

Nun benötige ich auch noch die Möglichkeit, aus dem FontFamily.Namen die
dazugehörige Schriftartendatei zu ermitteln.

Beispiel: FontFamily.Name = Arial
Fontdatei = c:\windows\fonts\arial.tff

Oder ist es immer so, dass der Familyname = Dateiname ist?
Ich habe mich mit den Schriften noch nie so richtig beschäftigt. :-?

Vielen Dank im voraus.

Gruß Ahmed
--
Antworten bitte nur in der Newsgroup.

Thorsten Albers

unread,
Sep 29, 2012, 5:31:33 PM9/29/12
to
Ahmed Martens <NG_A.M...@GMX.de> schrieb im Beitrag
<1xpj7sqhfe3ao.x412drwe0f0q$.d...@40tude.net>...
> Nun benötige ich auch noch die Möglichkeit, aus dem FontFamily.Namen die
> dazugehörige Schriftartendatei zu ermitteln.
>
> Beispiel: FontFamily.Name = Arial
> Fontdatei = c:\windows\fonts\arial.tff
>
> Oder ist es immer so, dass der Familyname = Dateiname ist?

Nein, keineswegs. Genaugenommen hat der Schriftdatei-Name überhaupt nichts
mit dem Schriftfamilien-Namen zu tun, er wird lediglich von den meisten
Schriftentwicklern zumindest einigermaßen gleichlautend gewählt - aber auch
das gilt meist nur für den Schriftstil "Normal"/"Regular". Bei
Schriftstilen wie "Fett" oder "Kursiv" fügt der eine ein Suffix (z.B. "B",
"I") an den Dateinamen an, der andere hängt die Zeichenfolge "Bold" bzw.
"Italic" daran. Es gab zwar mal Versuche, Schriftdatei-Namen in gewissem
Umfang zu vereinheitlichen, das ist aber schon länger her.

Der Schriftdatei-Name läßt sich nicht direkt mit API-Methoden ermitteln;
stattdessen muß er entweder aus der Registry gelesen werden, oder die
Binärdaten der Schrift müssen ausgelesen (GetFontData()) und interpretiert
werden.

--
Thorsten Albers

gudea at gmx.de

0 new messages