Saltar al contenido

Uso de fuentes en el sistema con iTextSharp

Contamos con tu apoyo para compartir nuestros escritos sobre las ciencias de la computación.

Primero, debe registrar la fuente y luego recuperarla de FontFactory (y no crearla cada vez):

public static iTextSharp.text.Font GetTahoma()

    var fontName = "Tahoma";
    if (!FontFactory.IsRegistered(fontName))
    
         var fontPath = Environment.GetEnvironmentVariable("SystemRoot") + "\fonts\tahoma.ttf";
         FontFactory.Register(fontPath);
    
    return FontFactory.GetFont(fontName, BaseFont.IDENTITY_H, BaseFont.EMBEDDED); 

Terminé combinando las 2 respuestas aquí en este método:

public static Font GetFont(string fontName, string filename)

    if (!FontFactory.IsRegistered(fontName))
    
        var fontPath = Environment.GetEnvironmentVariable("SystemRoot") + "\fonts\" + filename;
        FontFactory.Register(fontPath);
    
    return FontFactory.GetFont(fontName, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);

Que luego uso en mi código así:

writer.DirectContent.SetFontAndSize(GetFont("Franklin Gothic Medium Cond", "FRAMDCN.TTF").BaseFont, 24f);

En Windows, puede encontrar el nombre de archivo de la fuente en la hoja de propiedades de la fuente:

ingrese la descripción de la imagen aquí

También descubrí que debe usar el nombre exacto de la fuente en la pestaña Detalles:

ingrese la descripción de la imagen aquí

Estoy publicando esto ya que alguien más podría encontrar esto útil. Tuve un problema similar cuando ejecuté mi código en el servidor. El motivo es que itextsharp no pudo encontrar el estilo de fuente en el sistema operativo. Mi PDF mostró un estilo de fuente aleatorio cuando no pudo encontrar la fuente (error de tiro). Copié los archivos de fuentes requeridos (.ttf) en la carpeta bin de mi proyecto y usé el siguiente código.

public static BaseFont GetFont(string fontName)

    return BaseFont.CreateFont(HttpContext.Current.Server.MapPath("~/Bin/" +   fontName + ".ttf"), BaseFont.CP1252, BaseFont.EMBEDDED);

Aquí obtengo la fuente deseada

`BaseFont sm = GetFont("comic"); //The fontName here should exactly match` the` file name in bin folder

Puntuaciones y reseñas

Si eres capaz, tienes el poder dejar un escrito acerca de qué te ha parecido este artículo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *