2010-12-10 15 views
10

Una vez más necesito su ayuda.C# - Cómo utilizar una fuente personalizada sin instalarla en el sistema

Estoy desarrollando una pequeña aplicación en C# que usa una fuente personalizada. El problema es que la fuente debe estar instalada previamente en el sistema. Si la fuente no está presente en el sistema, solo usa Times New Roman. ¿Hay alguna manera de incrustar el archivo de fuente en la aplicación para que no tenga que instalarse en todos los sistemas?

Gracias.

+0

posibles duplicados: http://stackoverflow.com/questions/2288246, http://stackoverflow.com/questions/3007805/embedding-deploying-custom-font-in-net-app, http : //stackoverflow.com/questions/556147/how-to-quickly-and-easily-embed-fonts-in-winforms-app-in-c –

Respuesta

9

Si todavía está leyendo esto, podría señalar que no tiene que usar código inseguro para cargar la fuente de un recurso. Aquí hay un ejemplo usando Marshal.

PrivateFontCollection _fonts = new PrivateFontCollection(); 

byte[] fontData = Resources.CustomFontResourceName; 

IntPtr fontPtr = Marshal.AllocCoTaskMem(fontData.Length); 

Marshal.Copy(fontData, 0, fontPtr, fontData.Length); 

_fonts.AddMemoryFont(fontPtr, fontData.Length); 

Marshal.FreeCoTaskMem(fontPtr); 

Font customFont = new Font(_fonts.Families[0], 6.0F); 
+0

El artículo al que se vincula la respuesta aceptada explica que esta es una opción, tanto para programadores de VB.NET como para aquellos que no quieren usar 'inseguro' en C#. –

+0

@Cody Entonces, supongo, aquí hay un ejemplo :). – Shibumi

+0

cuando uso este enfoque para cargar fuentes en mi máquina de desarrollo, solo funciona con fuentes .ttf y no con fuentes .otf. Cuando despliego mi sitio web a la nube (azul de Windows), solo funciona con las fuentes .otf y no con las fuentes .ttf. ¿Cómo puede ser esto? – fireydude

Cuestiones relacionadas