2012-05-14 15 views
8

intento utilizar OTF fuente instalada en mi sistema pero falló:acceso OTF fuente

FontFamily family = new FontFamily(name_for_my_font); 

me han tratado de enumerar todos mis fuentes en el sistema y la fuente requerida de hecho no he visto:

foreach (FontFamily font in System.Drawing.FontFamily.Families) 
{ 
Console.WriteLine(font); 
} 

Pero puedo ver a mi fuente en Fuentes carpeta. Tiene OTF extensión. ¿Tal vez ese sea el problema? Solo puedo ver TTF fuentes. ¿Pero por qué? ¿Cómo puedo acceder a la fuente OTF desde mi programa?

ACTUALIZACIÓN: Lo sentimos el problema es con OTF acceso, pero no TTF! He hecho las correcciones en mi respuesta

+1

que es al revés, System.Drawing puede manejar sólo fuentes TrueType , no fuentes OpenType. –

+0

¡guau! No tengo ni idea de eso. Entonces, ¿cómo puedo acceder a mis fuentes OTF? –

+0

Hay una solución fácil y difícil para eso. Lo fácil es dejar de intentar usar fuentes OpenType porque nunca van a funcionar en una aplicación Winforms. Lo difícil es tirar todo lo que tienes y cambiar a WPF. –

Respuesta

8

El problema es que las fuentes OpenType vienen en varios sabores, uno basado en esquemas TrueType y otro basado en PostScript Type 1 esquemas. La API gráfica de Windows GDI + no es compatible con los contornos tipo 1 de PostScript. Esto es algo irónico ya que el formato de fuente OpenType fue creado por Microsoft como resultado de no poder licenciar alguna tecnología de fuente de Apple.

Por lo tanto, si una aplicación de Windows está basada en GDI +, no podrá renderizar fuentes OpenType que tengan tipografías PostScript tipo 1 o tipografías PostScript tipo 1 para el caso. Desafortunadamente, System.Drawing se implementa utilizando GDI +. Su única opción es apegarse a las fuentes que usan contornos TrueType.

(O, si usted está realmente desesperada, puede P/Invoke a GDI "clásico" y hacer que la fuente en un mapa de bits.)

0

intenta utilizar el System.Drawing.Text.InstalledFontCollection http://msdn.microsoft.com/en-us/library/system.drawing.text.installedfontcollection.aspx

+2

1) ¿Cómo puedo ayudarme a acceder a mi fuente OTF? 2) No puedo ver mi fuente usando tu enfoque también. –

+1

Esta sigue siendo una buena respuesta sobre cómo ver las fuentes instaladas. Probablemente tendré que pinchar, así que agradezco el paso adelante para poder listar la fuente. – Carter

Cuestiones relacionadas