La generación de la imagen captcha falla debido a que falta el archivo de familia de fuentes en el servidor

He creado mi imagen captcha personalizada, que no se procesa debido a que falta una fuente en el servidor.

private const string FontFamily = "Arial";   //this one works

private const string FontFamily = "Rockwell";   //this one is not existing on server

¿Cómo proporciono el archivo de fuentes a la aplicación para usar mi familia de fuentes personalizada desde el archivo? por el momento tengo mi función como:

using (Font font = new Font(FontFamily, 1f)){
//rest of the code
}

preguntado el 27 de agosto de 11 a las 18:08

¿Necesita tener una fuente que funcione con la aplicación o sería suficiente con instalar la fuente en el servidor? -

No tengo acceso al servidor excepto ftp. Así que necesito agregar la fuente a la aplicación, pero no tengo idea de cómo hacerlo. -

1 Respuestas

Esto depende de su método de dibujo de captcha personalizado, pero generalmente tiene la función drawString (), donde puede agregar su fuente recién registrada a través de un PrivateFontCollection () para escribir texto. Un ejemplo en VB sería:

Imports Microsoft.VisualBasic
Imports System.IO
Imports System.Drawing
Imports System.Drawing.Text
Imports System.Drawing.Imaging
Imports System.Drawing.Drawing2D
Public Class clsUtility
Public Shared Function GetFontPic(ByVal Fontpath As String, ByVal Text As String) As System.Drawing.Bitmap
Dim width As Integer = 620
Dim height As Integer = 30
Dim FontImage As New System.Drawing.Bitmap(width, height, PixelFormat.Format24bppRgb)
Dim g As Graphics = Graphics.FromImage(FontImage)
g.Clear(Color.White)
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias
g.SmoothingMode = SmoothingMode.AntiAlias
Dim pointF As New PointF(10,0)
Dim FontSize As Integer = 24
Dim solidBrush As New SolidBrush(Color.Black)
Dim privateFontCollection As New PrivateFontCollection()
privateFontCollection.AddFontFile(Fontpath) ' load font from file
Dim thisFont As FontFamily = privateFontCollection.Families(0)
Dim regFont As New Font(thisFont, FontSize, FontStyle.Regular, GraphicsUnit.Pixel) ' Create a new font
g.DrawString(Text, regFont, solidBrush, pointF) ' Using the font write the text using the font style
Return FontImage
End Function

Fuente: http://www.tutorialsasp.net/uncategorized/loading-and-previewing-fonts-from-files-in-aspnet/

Respondido 27 ago 11, 23:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.