Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] problema con Font en ITEXT

Estas en el tema de problema con Font en ITEXT en el foro de Java en Foros del Web. Hola gente buenas tardes.. estoy haciendo una aplicacion, que va armando un pdf con la libreria ITEXT. y entre otras cosas.. se selecciona la fuente ...
  #1 (permalink)  
Antiguo 15/10/2014, 13:53
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 15 años, 5 meses
Puntos: 21
problema con Font en ITEXT

Hola gente buenas tardes.. estoy haciendo una aplicacion, que va armando un pdf con la libreria ITEXT. y entre otras cosas.. se selecciona la fuente (tipografía) mediante jfontchooser (un selector de fuentes).

el problema es que jfontchooser me devuelve el nombre de la fuente de una forma.. ejemplo..

si selecciono Times New Roman me devuelve exacatmente "Times New Roman"

pero.. Itext necesita "Times-Roman" y asi con todas.

y no consigo encontrar la forma de traducirla.

de la siguiente forma intento obtener la fuente guardada en un txt (claro que los datos los puse estaticos para que se entienda.)

Código:
String fuenteNombre="Times New Roman";
Int fuenteSize=14;
Int fuenteEstilo=1;
Color fuenteColor=newColor(0,0,0,255);

 this.fuenteTitulo = FontFactory.getFont(fuenteNombre,
                        fuenteSize,
                        fuenteEstilo,
                        fuenteColor);
desde ya muchas gracias.
  #2 (permalink)  
Antiguo 24/10/2014, 08:20
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 15 años, 5 meses
Puntos: 21
Respuesta: problema con Font en ITEXT

bueno... encontre la manera de resolverlo.. no se si sera la mas optima pero funciona...

si alguien esta en el mismo intringulis... les explica mas o menos como resolvi..

Código:
        /*
       usando defaultfontmapper, etemos todo un directorio de fuentes en un         hashmap <String , basefontparametters>, de esta forma podremos aceder a la ruta del archivo ttf mediante una key que sera el nombre de la fuente, con un locale especial, las primeras dos lineas son solo para ubicar el directorio de fuentes de windows, en la 3 y cuatro se inserta el directorio en el hashmap
       */
        String path = System.getenv().get("SystemRoot");
        File fontDirectory = new File(path, "Fonts");

        DefaultFontMapper mapper = new DefaultFontMapper();
        mapper.insertDirectory(fontDirectory.getAbsolutePath());

        /*luego desde el jfontchooser (esto no lo voy a poner). obtenemos el nombre de la fuente awt con un locale particular*/
       
         String nombreKey=font.getFontName(Locale.ROOT); // recuerden que esta variable viene desde eñ jfontchooser


       /* una vez que tenemos este nombre y el hashmap .. */

 String rutaFuenteFiltro1 = mapper.getMapper().get(nombreKey).fontName;
//obtenemos la ruta al archivo ttf que esta en el hashmap por el key.


 BaseFont fuenteF1 = BaseFont.createFont(rutaFuenteFiltro1, BaseFont.WINANSI, BaseFont.EMBEDDED);
                
this.fuenteFiltro1 = new Font(fuenteF1, Integer.parseInt(disFiltro1FuenteSize));
fuenteFiltro1.setColor(colorFiltro1);

y listo ya esta para aplicar.. al pdf.
si alguien lo resuelve mejor.. leo atentamente... gracias

Etiquetas: font, itext, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:53.