iText - iText Font - ¿Como agregar una nueva font/fuente (FontFamily)? - La clase Abstracta BaseFont - iText Propiedades relacionadas con el encoding
Hola, hoy vamos a hablar de la clase BaseFont con un poco mas de detalle sus propiedades y sus métodos mas importantes, ¿Como agregar una nueva font?, etc.
Por defecto la ubicación de las Fonts es: com/itextpdf/text/pdf/fonts/
Los tipos de letras (FontFamilys) soportados por defecto son:
Las propiedades relacionados con el encoding son:
En algunos casos tenemos que agregar algún nuevo tipo de letra que iText no contempla.
Primero debemos saber la ubicación y el nombre completo de la fuente a agregar, también tenemos que saber el tipo de encoding a utilizar. En nuestro ejemplo utilizaremos el tipo de de fuente KUNSTLER.TTF, cuya ubicación es C:\fonts\, por otro lado utilizaremos el encoding Cp1252 y por ultimo tenemos que saber si queremos que el PDF contenga la fuente lo cual lo hace mas pesado, pero en el caso de optar a que no la contenga estamos obligados que el sistema operativo en el cual se visualiza el PDF tenga esa fuente, en nuestro ejemplo optaremos que este embebida la fuente..
Una ves definido los datos de arriba obtenemos una instancia de la clase BaseFont. Pasando por parámetros los datos recolectados. Utilizando el método que provee BaseFont llamado createFont()
Usando los atributos de clase BaseFont.
BaseFont baseFont = BaseFont.createFont("C:\\fonts\\KUNSTLER.ttf", BaseFont.WINANSI, BaseFont.EMBEDDED);
Sin los atributos de la clase BaseFont.
"Recordar que el path tenemos que escribir \\ para que tome la \ (slash bar)".
BaseFont baseFont = BaseFont.createFont("C:\\fonts\\KUNSTLER.ttf", "Cp1252", true);
Tenemos que tener en cuenta que esto lo tenemos que realizar dentro de un bloque Try -Catch, debido a que puede lanzar 2 tipos de excepciones DocumentException y IOException
Luego generamos una instancia de la clase Font (Esta clase la vimos con mas detalle en acá) y utilizamos el constructor que permite enviarle una BaseFont.
Font fuente = new Font(baseFont);
Finalmente asignamos esta font al elemento, pudiendo ser Chunk,Phrase, Paragraph, etc.
Código:
Como siempre espero que les allá servido y resultado útil.
Link Relacionados
iText - Chunk - ¿Como agregar texto con la clase Chunk? - Errores Comunes con Chunks - Constructores de la Clase Chunk
iText - ¿Como generar un PDF con iText? - Clases fundamentales en iText - ¿Como ingresar texto a un PDF con iText?
iText - Phrase - Constructores de la Clase Phrase - ¿Como agregar texto con la clase Phrase? - ¿Como cambiar el espacio entre lineas en un Phrase?
La clase Abstracta BaseFont
Como dijimos anteriormente la Clase BaseFont contiene los tipos de fuentes soportadas como también la ubicación de las mismas.Por defecto la ubicación de las Fonts es: com/itextpdf/text/pdf/fonts/
Los tipos de letras (FontFamilys) soportados por defecto son:
- COURIER
- HELVETICA
- TIMES_ROMAN
- SYMBOL
- ZAPFDINGBATS
- UNDEFINED
iText Propiedades relacionadas con el encoding
Las propiedades relacionados con el encoding son:
- CP1250: Tipo de encoding Cp1250.
- CP1252: Tipo de encoding Cp1252.
- CP1257: Tipo de encoding Cp1257.
- WINANSI: Tipo de encoding Cp1252.
- MACROMAN: Tipo de encoding MacRoman.
¿Como agregar una nueva font/fuente (FontFamily)?
Primero debemos saber la ubicación y el nombre completo de la fuente a agregar, también tenemos que saber el tipo de encoding a utilizar. En nuestro ejemplo utilizaremos el tipo de de fuente KUNSTLER.TTF, cuya ubicación es C:\fonts\, por otro lado utilizaremos el encoding Cp1252 y por ultimo tenemos que saber si queremos que el PDF contenga la fuente lo cual lo hace mas pesado, pero en el caso de optar a que no la contenga estamos obligados que el sistema operativo en el cual se visualiza el PDF tenga esa fuente, en nuestro ejemplo optaremos que este embebida la fuente..
Una ves definido los datos de arriba obtenemos una instancia de la clase BaseFont. Pasando por parámetros los datos recolectados. Utilizando el método que provee BaseFont llamado createFont()
Usando los atributos de clase BaseFont.
BaseFont baseFont = BaseFont.createFont("C:\\fonts\\KUNSTLER.ttf", BaseFont.WINANSI, BaseFont.EMBEDDED);
Sin los atributos de la clase BaseFont.
"Recordar que el path tenemos que escribir \\ para que tome la \ (slash bar)".
BaseFont baseFont = BaseFont.createFont("C:\\fonts\\KUNSTLER.ttf", "Cp1252", true);
Tenemos que tener en cuenta que esto lo tenemos que realizar dentro de un bloque Try -Catch, debido a que puede lanzar 2 tipos de excepciones DocumentException y IOException
- DocumentException: Si la fuente no es valida.
- IOException: Si la fuente no puede ser leída.
Luego generamos una instancia de la clase Font (Esta clase la vimos con mas detalle en acá) y utilizamos el constructor que permite enviarle una BaseFont.
Font fuente = new Font(baseFont);
Finalmente asignamos esta font al elemento, pudiendo ser Chunk,Phrase, Paragraph, etc.
documento.add(new Paragraph("iText", fuente));
Resultado:
Con la fuente kunstler.ttf |
Como siempre espero que les allá servido y resultado útil.
Link Relacionados
iText - Chunk - ¿Como agregar texto con la clase Chunk? - Errores Comunes con Chunks - Constructores de la Clase Chunk
iText - ¿Como generar un PDF con iText? - Clases fundamentales en iText - ¿Como ingresar texto a un PDF con iText?
iText - Phrase - Constructores de la Clase Phrase - ¿Como agregar texto con la clase Phrase? - ¿Como cambiar el espacio entre lineas en un Phrase?
iText - iText Font - ¿Como agregar una nueva font/fuente (FontFamily)? - La clase Abstracta BaseFont - iText Propiedades relacionadas con el encoding
Reviewed by El lado oscuro de java
on
noviembre 21, 2013
Rating:
No hay comentarios: