2012-08-09 26 views
8

Digamos que hay un archivo .ttf (True Type Font). Puede instalarlo en Windows con un clic. El nombre real de la fuente no es el texto que está antes de .tff (digamos SuperFont.ttf => entonces el nombre no es "SuperFont" - podría ser, pero en su mayoría no). Me gustaría leer .tff (¿de alguna manera?) Y obtener el nombre (sin instalar la fuente) de la fuente. ¿Algunas ideas?Obtener el nombre de la fuente del archivo .ttf

+1

aquí está el manual de ttf ref https://developer.apple.com/fonts/TTRefMan/index.html – albertjan

Respuesta

22

Deberá agregar la fuente a una colección privada (PrivateFontCollection), luego solicitar la instancia FontFamily y obtener su propiedad Name.

De esta manera:

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

que necesitará los espacios de nombres:

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

MSDN: PrivateFontCollection, FontFamily

+1

_ (sin instalar la fuente) _ –

+3

Esto no instala la fuente. Aunque MSDN utiliza el término "instalar", lo utilizan a la ligera. "' Esta es una instalación temporal de fuentes que no afecta la colección instalada en el sistema. "Instalar aquí básicamente significa" cargado ". –

+0

Correcto, no me di cuenta de eso. –

3

Aquí está el otro código para extraer nombredetipo sin utilizar System.Drawing dll

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

FontFamily está en System.Drawing.dll ... –

Cuestiones relacionadas