Sunteți pe pagina 1din 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

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

Las Marcas y Logotipos Mostrados, son marcas registradas de sus respectivas empresas y/o proyectos en Mxico y Otros Pases o ambos.
22/08/2010

Puede obtener esta librera desde su pagina oficial en: http://itextpdf.com

Geniz v. 1.0 Update 1

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

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 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"};

fuentes

en

/*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

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

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 ID",FontFactory.getFont("arial",10,Font.BOLD,BaseColor.RED)));; PdfPCell celda2 =new PdfPCell (new Valor",FontFactory.getFont("arial",10,Font.BOLD,BaseColor.RED)));

Paragraph("Columna1Paragraph("Columna2-

22/08/2010

Geniz v. 1.0 Update 1

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

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

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

S-ar putea să vă placă și