2012-08-09 22 views
8

Diciamo che c'è un file .ttf (True Type Font). Puoi installarlo su Windows con un clic. Il vero nome del font non è il testo che precede il .tff (diciamo SuperFont.ttf => quindi il nome non è "SuperFont" - potrebbe essere, ma soprattutto no). Mi piacerebbe leggere il .tff (in qualche modo?) E ottenere il nome (senza installare il font) del font. Qualche idea?Ottieni il nome del carattere del file .ttf

+1

ecco il manuale ref ttf https://developer.apple.com/fonts/TTRefMan/index.html – albertjan

risposta

22

È necessario aggiungere il carattere a una raccolta privata (PrivateFontCollection), quindi richiedere l'istanza FontFamily e ottenere la proprietà Name.

Ti piace questa:

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

avrete bisogno gli spazi dei nomi:

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

MSDN: PrivateFontCollection, FontFamily

+1

_ (senza installare il font) _ –

+3

Questo non installa il carattere. Sebbene MSDN utilizzi il termine "installa", lo stanno usando alla leggera. "Questa è un'installazione di carattere temporaneo che non ha effetto sulla raccolta installata nel sistema". L'installazione qui significa fondamentalmente "caricata". –

+0

Giusto, non lo sapevo. –

3

Ecco il codice di un altro per estrarre fontname senza utilizzare System.Drawing dll

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

FontFamily è in System.Drawing.dll ... –

Problemi correlati