IText

RECU-0239 (Recurso Ficha Técnica)

Descripción

Está formado por una serie de clases tremendamente útiles para quienes necesitan generar documentos en un formato portable, es decir, totalmente independiente de la plataforma desde la que se consultan, sean textos, imágenes, listas o tablas, no importa de momento que tengas iText. iText permite generar documentos PDF, XML, HTML o RTF al vuelo, controlando de forma precisa el aspecto del documento obtenido.

Del mismo modo, se permite parsear documentos XML y convertirlos en cualquiera de los formatos mencionados anteriormente. Es ideal también para combinar múltiples documentos PDF en un nuevo fichero PDF pero, los que más van a valorar sus capacidades son los desarrolladores, que tendrán la posibilidad de implementar nuevas capacidades a sus aplicaciones, gracias a la generación dinámica de documentos PDF. Entre las características que podemos añadir a nuestros documentos destacan:

  • Márgenes
  • Tablas
  • Cabeceras
  • Pies de páginas
  • Numeración en las páginas
  • Distintos tipos de letras
  • Cifrado de documentos
  • Soporte para varios tamaños de páginas y vistas
  • Posibilidad de visualizar imágenes
  • Marcas de agua
  • Salto automático de página
  • Posibilidad de colocar los objetos en cualquier parte del documento
  • Páginas multicolumnas
  • Firma digital con PKCS7

La ventaja que ofrece iText sobre otras librerías de generación de documentos PDF que existen para la plataforma java, es que la clase que genera los PDF ya esta compilada, no hay que hacer una transformación xslt cada vez que se genera el documento, con lo que la generación es mucho más rápida y se consumen muchos menos recursos del sistema.

Esta característica podría considerarse un error, pues el hecho de depender de una clase, y no de un archivo externo, para generar el documento hace que no sea rápido adaptarse a los cambios que haya que hacer en el documento. Este argumento puede tener razón de ser pero existen proyectos que, basándose en iText para la generación de los documentos, proporcionan esa capa de abstracción para "dibujar" el documento desde un XML, creando a partir de él la clase de iText, teniendo de esta manera lo mejor de ambos mundos. 

Podría pensarse que esta situación es un problema ya que el hecho de depender de una clase, y no de un archivo externo, para generar el documento hace que no sea rápido adaptarse a los cambios que haya que hacer en el documento. Sin embargo, existen herramientas que permiten diseñar el documento en forma visual, como IReports, generando el documento xml de esta manera, para posteriormente generar la clase que usa iText.

Ejemplo de uso

import java.io.FileOutputStream; 
import java.io.IOException;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("http://www.seraphinux.com/");    
        Document documento = new Document();
     try {
        PdfWriter.getInstance(documento,
            new FileOutputStream("seraphinux.pdf"));
        documento.open();
        documento.add(new Paragraph("http://www.seraphinux.com/"));
     } catch (DocumentException de) {
       System.err.println(de.getMessage());
     } catch (IOException ioe) {      
       System.err.println(ioe.getMessage());   
     }    
        documento.close();
    }
}

Requisitos e incompatibilidades

  • La versión 1.4 de JDK de Java.

Contenidos relacionados

Pautas
Área: Desarrollo » Librerías y Módulos » Java
Código Título Tipo Carácter
LIBP-0344 Librerías para aplicaciones Java Libro de pautas Directriz Recomendada