2012-08-09 9 views
8

Sagen wir, es gibt eine .ttf (True Type Font) -Datei. Sie können es auf Windows mit einem Klick installieren. Der echte Name der Schriftart ist nicht der Text vor der .tff (sagen wir SuperFont.ttf => also der Name ist nicht "SuperFont" - es könnte sein, aber meistens nicht). Ich möchte die .tff (irgendwie?) Lesen und den Namen (ohne die Schriftart zu installieren) der Schriftart bekommen. Irgendwelche Ideen?Get font name von .ttf-Datei

+1

Hier ist das TTF ref Handbuch https://developer.apple.com/fonts/TTRefMan/index.html – albertjan

Antwort

22

Sie müssen die Schrift zu einer privaten Sammlung hinzufügen (PrivateFontCollection), dann die FontFamily -Instanz anfordern und die Name-Eigenschaft abrufen.

So:

PrivateFontCollection fontCol = new PrivateFontCollection(); 
fontCol.AddFontFile(@"PATH TO FONT"); 
Console.WriteLine(fontCol.Families[0].Name); 

Hier finden Sie die Namensräume benötigen:

using System.Drawing; 
using System.Drawing.Text; 

MSDN: PrivateFontCollection, FontFamily

+1

_ (ohne die Schriftart zu installieren) _ –

+3

Dies installiert die Schriftart nicht. Obwohl MSDN den Begriff "installieren" verwendet, verwenden sie es leicht. "Dies ist eine temporäre Schriftarteninstallation, die die systeminstallierte Sammlung nicht beeinflusst." "Installiere hier bedeutet grundsätzlich" geladen ". –

+0

Richtig, habe das nicht bemerkt. –

3

Hier ist die andere Code Fontname zu extrahieren, ohne System.Drawing mit dll

foreach (FontFamily fontFamily in Fonts.GetFontFamilies("file:///D:/MyFonts/")) 
{ 
    string name = fontFamily .ToString().Split('#')[fontFamily .ToString().Split('#').Count() - 1]; 
} 
+0

FontFamily ist in System.Drawing.dll ... –