Está en la página 1de 11

iText PDF: your Java-PDF library

Ejemplo de documento con


en N sliders
Por:
Ing. Domnguez Geniz Amalio Javier
< ajdgeniz@hotmail.com >
< ajdgeniz@yahoo.com.mx >

http://ajdgeniz.wordpress.com

22/08/2010 Geniz v. 1.0 1


De la Coleccin
Aprenda en N Diapositivas

Qu es iText?

iText es una librera escrita en java por Bruno Lowagie y otros, que permite a los desarrolladores
generar dinmicamente documento en formato PDF, ofrece ventajas como:
El documento puede contener entradas escrita por el usuario a travs de variables.
El contenido puede ser personalizado
El documento puede ser ejecutado desde un entorno Web o Desktop
Se puede generar un documento a partir de archivos XML o Bases de datos
Agregar firmas digitales al PDF
Dividir, concatenar y manipular paginas del PDF

Puede obtener esta librera desde su pagina


oficial en:
Las Marcas y Logotipos
http://itextpdf.com
Mostrados, son marcas
registradas de sus respectivas
empresas y/o proyectos en
Mxico y Otros Pases o ambos.

22/08/2010 Geniz v. 1.0 Update 1 2


De la Coleccin
Aprenda en N Diapositivas

A continuacin haremos un ejemplo donde utilizaremos los prrafos, tablas y veremos como
insertar una imagen adems de agregarle una fuente en especifico.
Primeramente recuerde tener a la mano la librera de iText en este caso he utilizado la versin
5.0,2:
/*Primeramente y como en todo archivo java haremos las importaciones necesarias*/

import java.io.*;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.pdf.*;
import com.itextpdf.text.Font;
import com.itextpdf.text.Chunk;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.FontFactory;
import com.itextpdf.text.BaseColor;
import javax.swing.JOptionPane;

22/08/2010 Geniz v. 1.0 Update 1 3


De la Coleccin
Aprenda en N Diapositivas

public class docItext {

public void generarPDF()throws Exception{


/*Primero definimos todas las cadenas del encabezado del documento y los demas datos a
utilizar*/
String encabezado="Geniz Software - Http://ajdgeniz.wordpress.com"+"\n"+
"Esta es una frase que estara en el encabezado del
documento"+"\n"+"\n"+"\n"+"\n"
+"\n"+"\n"+"\n";
/*colocaremos tambien la fecha de creacion*/
java.util.Date date = new java.util.Date();
/*Fuente utilizada para formatear el encabezado en este caso sera arial 12 en negrita*/
Font fuente= new Font(Font.getFamily("ARIAL"), 12, Font.BOLD);
/*Definimos un texto que se incluira antes de la tabla*/

22/08/2010 Geniz v. 1.0 Update 1 4


De la Coleccin
Aprenda en N Diapositivas

String choro="Mi primer documento en iText\n"


+ "Este es un documento elaborado con iText 5.0 por Geniz"+"\n"
+ "No olviden visitar mis demas tutoriales y codigos fuentes en
http://ajdgeniz.worpdress.com"
+"\n"+"\n"+"\n"+"\n";
/*Tambien haremos una tabla a partir de un par de arreglos
en otro caso podria haber sido un resultset de una base de datos*/

String[] columna1={ "id1","id2","id3","id4","id5"};


String[] columna2={ "valor1","valor2","valor3","valor4","valor5"};

/*Ahora almacenaremos la imagen que ira en la parte superior y la alineamos a la


izquierda*/
Image imagen=Image.getInstance(("logo.png"));
imagen.setAlignment(Image.LEFT | Image.TEXTWRAP);

/*Ahora que ya tenemos el contenido del documento empezaremos a estructurarlo*/

22/08/2010 Geniz v. 1.0 Update 1 5


De la Coleccin
Aprenda en N Diapositivas

try{
/*Primero pasaremos nuestras cadenas a elementos de iText*/
/*definimos una frase que sera el string encabezado y le aplicamos la fuente*/
Paragraph linea = new Paragraph(encabezado,fuente);
/*Definimos un parrafo*/
Phrase para=new Phrase(choro);
/*Pasamos la fecha a un String y la agregamos a un parrafo*/
Paragraph fecha=new Paragraph(String.valueOf(date)+"\n"+"\n");
/*Ahora definimos la tabla donde el arguemento recibido indica el numero de columnas
y la propiedad setWidthPercentage permite indicarle que ocupe todo el ancho de la
pagina*/
PdfPTable tabla=new PdfPTable(2);
tabla.setWidthPercentage(100);

22/08/2010 Geniz v. 1.0 Update 1 6


De la Coleccin
Aprenda en N Diapositivas

/*Ahora que ya tenemos todos los elemtnos es hjora de agregarlos al documento, para ello
primeramente definimos un docuemnto e indicando el tamao*/
Document documento = new Document(PageSize.LETTER);
/*Definimos el nombre del archivo de salida con extension .PDF*/
String file="Hola.pdf";
/*a traves del siguiente metodo (getInstance)y un flujo de salida del paquete .io
asociamos el documento de iText con el archivo de java*/
PdfWriter.getInstance(documento, new FileOutputStream(file));

/*Definimos las celdas que seran los encabezados de la tabla*/


PdfPCell celda1 =new PdfPCell (new Paragraph("Columna1-
ID",FontFactory.getFont("arial",10,Font.BOLD,BaseColor.RED)));;
PdfPCell celda2 =new PdfPCell (new Paragraph("Columna2-
Valor",FontFactory.getFont("arial",10,Font.BOLD,BaseColor.RED)));

22/08/2010 Geniz v. 1.0 Update 1 7


De la Coleccin
Aprenda en N Diapositivas

/*Abrimos el documento y agregamos los elementos en el orden que deben aparecer*/


documento.open();
documento.add(imagen);
documento.add(linea);
documento.add(para);
documento.add(fecha);
tabla.addCell(celda1);
tabla.addCell(celda2);

/*Ahora a traves de un for insertaremos el contenido del arreglo en la tabla*/


for(int i=0;i<columna1.length;i++){
tabla.addCell(columna1[i]);
tabla.addCell(columna2[i]);
}
documento.add(tabla);
/*Cerramos el documento*/
documento.close();
/* LaunchApplication.execute(file);//Ignoren esta linea de codigo es una de mis clases
para pruebas*/

22/08/2010 Geniz v. 1.0 Update 1 8


De la Coleccin
Aprenda en N Diapositivas

}catch(DocumentException e){
JOptionPane.showMessageDialog(null,e.getMessage(),"Error",
JOptionPane.ERROR_MESSAGE);
return;

}catch(IOException e){
JOptionPane.showMessageDialog(null,e.getMessage(),"Error",
JOptionPane.ERROR_MESSAGE);
return;
}

22/08/2010 Geniz v. 1.0 Update 1 9


De la Coleccin
Aprenda en N Diapositivas

public static void main(String[]args)throws Exception{


/*invocamos al metodo generarPDF*/
docItext app=new docItext();
app.generarPDF();

22/08/2010 Geniz v. 1.0 Update 1 10


De la Coleccin
Aprenda en N Diapositivas

Finalmente el resultado en pantalla---------

No olviden visitar mi blog en:


http://ajdgeniz.wordpress.com
o en:
http://www.javamexico.org/blogs/ajdgeniz
http://mygnet.net/colaboradores/javier_dominguez_geniz.14691/
O en las redes sociales:
http://twitter.com/ajdgeniz
http://www.facebook.com/ajdgeniz

22/08/2010 Geniz v. 1.0 Update 1 11

También podría gustarte