You are on page 1of 5

Librera iText para la generacin de PDF dinmicos

Ing. Yasnay Hernndez Marrero, Dr. Joaqun Danilo Pina Amargos, Msc. Raisa Socorro Llanes, Ing. Joan Jaime
Puldn

Resumen. En los proyectos de informatizacin de los ltimos TABLA I [1]


aos, la generacin de reportes ha constituido una caracterstica a) PROBLEMAS HABITUALES AL TRABAJR CON FICHEROS
esencial, con gran peso para la toma de decisiones. Compaas de
gran prestigio han invertido en desarrollar herramientas que, de
una forma amigable, permiten al usuario personalizar sus
reportes e informes. Con estas bondades lo usuarios desconocen
qu hay dentro de esas herramientas o cules son las libreras
ms importantes que fueron utilizadas. En este trabajo se dan a
conocer los mtodos y caractersticas significativas de iText, una
de las libreras Java ms utilizadas para la generacin de
reportes e informes. Se destacan las bondades siguientes:
creacin del documento, formas de visualizacin, organizacin
por secciones, captulos, utilizacin de diferentes tipologas de
letras, insercin de tablas, imgenes y otros. iText es una de las
libreras que sin intermedio de herramientas de diseo, al ser
utilizada directamente mantiene gran parte de sus
potencialidades.

Palabras Claves. iText, PDF dinmicos, reportes

I. INTRODUCCIN
b) SOLUCIONES QUE BRINDA EL FORMATO PDF
En los ltimos aos, la generacin dinmica de documentos
ha ido en aumento. Cada vez ms proyectos incorporan esta
variante como una caracterstica indispensable para distribuir
mejor sus datos y realizar anlisis de negocios. La lnea de
generar documentos en formato de extensin PDF (Formato
de Documento Porttil) ha sido altamente aceptada. Este es un
formato estandarizado a nivel internacional en el uso de
documentacin. Para la interpretacin de este formato existen
varios programas gratuitos. Esto hace al documento altamente
portable, fcil de leer e imprimir, adems de no ser fcilmente
modificable por el portador.

En la Tabla.1 podemos observar los problemas principales


que nos pueden surgir a la hora de tratar con ficheros y las
soluciones que proporciona el formato PDF para evitarlos, que
le convierten en uno de los formatos de archivo ms estables
y, por tanto, en uno de los ms utilizados.
CCIA2008 2

Prcticamente todas las herramientas para la generacin de caractersticas del diseo de pgina, que incluye tanto el
documentos dan la posibilidad de generar archivos de tamao como la distribucin de los mrgenes.
extensin PDF. Algunas de estas herramientas son:
- JasperReports En la Fig.1 se observa cmo se instancia el documento con los
- iReport siguientes valores:
- CrystalReport (http://www.spain.businessobjects.com/ ) - mydocument es la instancia del documento con que se
- Oracle XML Publisher (http://www.oracle.com/ ) trabajar.
- entre otras - los argumentos del constructor
Ahora bien, as como existen numerosas herramientas para Document(PageSize.A4, 50, 50, 50, 50); son el
generar documentos PDF, es necesario conocer que tamao de la pgina, y luego estn los mrgenes
prcticamente todas las que estn soportadas con el lenguaje izquierdo, derecho, superior e inferior
Java, utilizan la misma librera, iText. Al delegarse las respectivamente.
responsabilidades en las herramientas de ayuda al diseo de
los documentos, por lo general se desconoce las bondades de
la utilizacin directa de esta librera.
Figura 1 Instanciando el documento
iText es una poderosa librera Java de cdigo abierto que
soporta la generacin de documentos HTML, RTF y XML, El tipo de documento no es definido aun, esto depende del
adems de documentos PDFs. Est disponible en escritor que se cree. PdfWriter para los PDF, RtfWriter para
Lowagie.com. (Descargar en los RTF y as sucesivamente. Los nombres de los escritores
http://www.lowagie.com/iText/download.html ). identifican los propsitos para los que son creados.
Cuenta con gran variedad de fuentes que pueden ser
utilizados en el cuerpo del documento. Adems la estructura
de iText permite generar cualquiera de los mencionados tipos Creando el escritor PdfWriter
de documentos (HTML, RTF, XML y PDF) con el mismo
cdigo. La librera iText para la visualizacin de los documentos
iText es una librera que contiene clases para generar utiliza la interfaz PdfWriter.
documentos PDF con diferentes fuentes, generar tablas,
establecer marcas de agua, etc. Al crear el escritor existen dos alternativas.
1. Crearlo para que el PDF sea guardado en una
Acerca de API iText direccin especfica de la mquina. Ver Fig.2.
com.lowagie.text.Document -- es la clase principal
para la generacin de documentos PDF. Esta es la
primera clase que es instanciada. Una vez que el
documento es creado, se deber proceder a escribir Figura 2 Documento guardado en la direccin especificada
dentro de l.
com.lowagie.text.pdf.PdfWriter -- es la clase que En la Fig.2 se muestra un ejemplo donde se almacena el PDF
permite escribir en el PDF. con el nombre iText, en la raz del directorio C.

Nota: El escritor PdfWriter exige la captura de la excepcin


Otras de las libreras ms utilizadas son: DocumentException y por otra parte FileOutputStream exige
la captura de FileNotFoundException.
com.lowagie.text.Paragraph -- es la clase que
representa el prrafo a escribir. 2. Crearlo para que sea mostrado al usuario en una
com.lowagie.text.Chapter es la clase que pgina de la misma aplicacin.
representa un captulo en el documento PDF. Este
es creado utilizando un prrafo como ttulo y un
entero como nmero del captulo.
com.lowagie.text.Font esta clase contiene todas
las especificaciones de las fuentes, tamaos, estilos
y colores de las letras a utilizar en el documento.
Varias de las fuentes son declaradas estticamente
en esta clase. Figura 3 Visualizacin del documento en una pgina cualquiera

II. PASOS PARA CREAR UN PDF En la Fig.3 el PDF se generar en una pgina cualquiera y
deber ser guardado fsicamente en alguna direccin de
Instanciando el documento memoria que el usuario desee.

Al instanciar un documento se debe especificar las Debern importarse o incluirse:


CCIA2008 3

- import javax.faces.context.FacesContext
- en el proyecto debe incluirse la librera JSF
- import javax.servlet.http.HttpServletResponse
- en el proyecto debe incluirse la librera JSP Runtime

Nota: La sentencia response.getOutputStream() exige la


captura de la excepcin IOException.
Abriendo el documento

Una vez configurada la estructura del documento y antes de


escribir en l, es necesario ejecutar la instruccin que muestra
la Fig.4. Esto posibilitar que todos los prrafos, tablas y
figuras que se deseen introducir en el documento, sean
incorporados correctamente.

Figura 7 Creando secciones dentro del captulo


Figura 4 Abrir el documento

Adicionando tablas
Creando y Adicionando prrafos
Las tablas con el iText son escritas por filas corridas, no es
iText posibilita la creacin de prrafos y su consiguiente posible ubicar fila y columna, por lo que es importante a la
incorporacin en el documento. hora de escribir los datos, hacer pases corridos teniendo claro
el tamao de la tabla. Para escribir en las tablas no es
En la Fig.5 el constructor del prrafo tiene como argumentos, necesario conocer la cantidad de filas que posee, pero si las
el texto del prrafo y la tipologa que se desea. columnas. En la Fig.8 se construye una tabla de tres columnas
y solamente se incorpora una fila que sera una especie de
encabezamiento a la tabla.

Nota: Se necesitan importar la interfaces o librera asociada a


Figura 5 Creando y escribiendo prrafos PdfPTable.

Cuando se adiciona se escribe en el documento el prrafo


creado y de esta forma se incorpora en el documento.

Nota: Para esta seccin se debern importar las libreras


relacionadas con Paragraph, FontFactory, Font and Color.

Creando captulos

Para crear captulos solamente es necesario declararlo e


importar la librera correspondiente Ver Fig.6.
Figura 8 Creando la tabla deseada

Para adicionar la tabla al captulo se utiliza la sentencia


mostrada en la Fig.9.

Figura 6 Nombrando y creando captulos Figura 9 Adicionando la tabla al captulo

Cuando se crean las tablas, al definir las columnas debe


Creando una seccin dentro del captulo tenerse en cuenta que, este valor es fijo, y una vez creado no
podr ser modificado. En el ejemplo de la Fig.8 se tienen solo
Al igual que los captulos, las secciones al ser declaradas tres columnas y solo hay una fila, pero se pudieran incluir
deben tener un ttulo, por tal motivo en la Fig.7 se crea el cualquier cantidad de filas ms, cada una con tres elementos.
nombre de la seccin y a continuacin, se crea la misma.
CCIA2008 4

Adicionando el Captulo y Cerrando el documento


En la Fig.12 se introducen dos lneas, una debajo de la otra.
Una vez concluida todas las modificaciones al captulo es La tipologa es negrita y estn centradas.
necesario incluirlo en el documento y en este caso que no se
desea realizar ninguna otra operacin, se deber cerrar. En la
Fig.10 se muestran ejemplos de ambas instrucciones.

Figura 10 Adicionando el captulo y cerrando el documento

Otras recomendaciones

Antes de construir el documento, se debe crear una clase


general que contenga la informacin que desea plasmar en el
mismo, atendiendo a la estructura que desea. Figura 12 Ejemplo de espaciado y alineacin

Llame al mtodo de crear el documento, pasndole en cada Nota:


prrafo, los datos de la clase. En los textos a introducir, el enter o lo que es lo mismo, el
salto a la lnea siguiente se realiza con la notacin \n.

Otros elementos y caractersticas que pueden ser utilizados al 3. Fecha y hora actual
crear un PDF
Es posible que sea de inters para algunos usuarios que la
1. Adicionando una imagen fecha y hora actual queden reflejadas en el documento que se
Para adicionar una imagen en el documento deben analizarse emite. Existen mltiples formatos que permiten introducir
las caractersticas de la misma y establecer su ubicacin y estos datos.
tamao. Este ltimo se considerar un porciento especfico de
la escala real. En la Fig.11 se muestran las instrucciones Calendar, GregorianCalendar y DateFormat son libreras de
necesarias para insertar la imagen. Java que permiten obtener y manipular los formatos de las
fechas (especialmente la actual).

En la Fig.13 se muestran los diferentes formatos que se le


pueden dar a la fecha. Estos son:

- Pequeo(SHORT) 21/07/08
- Medio(MEDIUM) 21-jul-2008
- Largo(LONG) 21 de julio de 2008
- Completo(FULL) lunes, 21 de julio de 2008
Figura 11 Insertando una imagen en el documento

Nota: En el ejemplo de la Fig.11, la imagen se encuentra en


una ubicacin especfica de la mquina.

2. Espaciado y alineacin de objetos (prrafos)

Cualquier objeto que se introduzca en el documento puede


utilizar los mtodos:

- setSpacingAfter(Number); que permite establecer el


espaciado posterior al objeto.
- setSpacingBefore(Number); referente al espaciado
anterior al objeto.
Figura 13 Utilizacin de la fecha y hora actual
- setAlignment(Element.ALIGN_CENTER) que permite
la alineacin del objeto en el documento. Pueden ser
a la izquierda, derecha o centrado.
CCIA2008 5

III. RESULTADOS grandes potencialidades. Su utilizacin para la creacin de


Siguiendo las indicaciones descritas en los apartados reportes e informes simples es fcil. Este hecho permite
anteriores se obtiene un documento PDF similar al que se prescindir de la utilizacin de herramientas complejas que a
muestra a continuacin. En la primera pgina aparecer un pesar de facilitar el diseo de los reportes, aumenta el costo de
prrafo y la estructura ser similar a la siguiente: los proyectos.

V. REFERENCIAS
[1] jMSC. Herramienta CASE para el desarrollo
de Asistentes de Navegacin Web. Proyecto Fin
de Carrera I.T.Telecomunicaciones:Telemtica.
Daniel Lastra Rodrguez. Escuela Politcnica
Superior Universidad Carlos III de Madrid. (julio-
2004). Consultado septiembre/2008.

VI. BIBLIOGRAFIA

- Sitio de iText. http://www.lowagie.com/iText/


Consultado (abril/2008). Son varios ejemplos que
aparecen en el sitio, que referencian el libro de
iText in Action.
- Sitio de ibm. http://www.ibm.com Generate PDF
files from Java applications dynamically
(enero/2006) Consultado (abril/2008).
- Transauto. Sistema de Gestin Informatizada de las
Bases de Transporte del Ministerio de Educacin
Superior. Trabajo de diploma para optar por el
ttulo de Ingeniera en Informtica. ISPJAE.
Figura 14 Primera pgina de un documento PDF creado dinmicamente.
Milena Ramos Prez (Graduacin 2006-2007)
Consultado septiembre/2008.
Una segunda pgina donde se pudiera ver la organizacin
del documento en captulos y secciones, pudiera ser, la
siguiente, atendiendo a los ejemplos realizados a lo largo del
artculo.

Figura 15 Organizacin del documento en captulos y secciones

IV. CONCLUSIONES
iText es una librera de Java de fcil manejo pero con

You might also like