Estudia el pasado si quieres pronosticar el futuro
Confucio

Archivos del día 6 de June del 2008

iText, librería para generar ficheros PDF

iText in ActioniText es una librería Java gratuita que permite generar ficheros en formato PDF desde nuestro código Java.

En su contra diré que el código es difícil de generar (y de mantener) cuando queremos presentar muchos datos y listados, ya que su filosofía de funcionamiento es similiar al elemento <table> de HTML: para estructuras complejas tenemos que anidar elementos.

Además no existe el concepto rowspan, con lo cual tenemos que anidar más elementos.

Nos permite asociar código a eventos, como :

public class Eventos extends PdfPageEventHelper {

  public void onOpenDocument(PdfWriter writer, Document document) {
     
 

  public void onCloseDocument(PdfWriter pdfwriter, Document document){

  }

  public void onStartPage(PdfWriter pdfwriter, Document document){

     

  }

  public void onEndPage(PdfWriter pdfwriter, Document document){

      ..

  }

}

Más ejemplo de código:

Font bf = BaseFont.createFont(contextPath.getRealPath("/pdf/fonts/") + "/arial.ttf", BaseFont.WINANSI, BaseFont.EMBEDDED);

Font fh8 = new Font(bf,9.5f, Font.NORMAL, new Color(0×33, 0×33, 0×33));

Font fb10 = new Font(bf, 10.5f, Font.BOLD, Color.black);

 

 tabla.setSpacingBefore(0);

 tabla.deleteBodyRows();

 PdfPTable t = new PdfPTable(1);

 t.setWidthPercentage(100);

 t.getDefaultCell().setPadding(4);

 t.getDefaultCell().setBorderWidth(0.4f);

 t.getDefaultCell().setVerticalAlignment(Element.ALIGN_TOP);

 t.getDefaultCell().setLeading(3,1.3f);

 PdfPTable tAux = getTableAuxDatosPropu(new float[]{4,29,67});

 tAux.getDefaultCell().setColspan(3);

 HashMap hAux = gestionSolicitud.datosRepresentante(cod_solicitud,"3");

 tAux.addCell(getPhraseLabelValor("NOMBRE:", hAux, "NOMBRE"));

 tAux.addCell( (new Phrase("CARGO: ", fb10)).add(new Chunk( ((hAux==null ||hAux.get("CARGO")==null)?"":String.valueOf(hAux.get("CARGO"))), fh8)) );

  t.addCell(tAux);

 tabla.addCell(t);

Más en: