Crear archivos PDF con Java

iText es una librería libre (distribuida bajo licencia MPL y LGPL) para Java que permite crear archivos PDF dinámicamente (“al vuelo”).

Con iText se pueden generar documentos, manipular documentos ya creados, agregar índices, números de páginas y marcas de agua, etc.

A continuación, veremos un ejemplo muy elemental de los proporcionados en el sitio oficial:


package pdf;

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 Test {

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

iText requiere el Java Development Kit (JDK) 1.4 o superior.

Vía: Seraphinux

21 comentario en este artículoDeje el suyo
  1. ps nomas como agregar el iText a netbeans 6.1 o 6.5
    todvia no puedo y si pdrian poner un ejemplo donde se cree un pdf
    y si las cordenadas funciona igual q en un Frame

  2. Para agregar iText a tu proyecto de NetBeans has de abrir tu árbol de proyectos, sobre la parte ‘Libraries’ y clickar en ‘add JAR/Folder’ elijes el archivo *.jar de iText y listo.

    El codigo que muestran en esta pagina funciona perfectamente para tu proyecto de Netbeans. Si por ejemplo quisieras generarlo desde un Servlet te serviría este código para pribar (en tu método doGet):

    Document document = new Document(PageSize.A4, 50, 50, 100, 72);
    try {
    // Paso 2: Establecemos el ContentType y creamos una instancia del Writer
    response.setContentType(“application/pdf”);
    PdfWriter writer = PdfWriter.getInstance(document, response.getOutputStream());
    writer.setPageEvent(new PdfPageEventHelper());
    // Paso 3
    document.open();
    // Paso 4
    document.add(new Paragraph(“Hello World”));
    document.add(new Paragraph(new Date().toString()));
    }
    catch(DocumentException de) {
    de.printStackTrace();
    System.err.println(“document: ” + de.getMessage());
    }
    // Paso: Cerramos el ‘document (el ‘outputstream’ se cierra automáticamente internamente)
    document.close();

    Todo esto sin olvidar de importar las clases correspondientes. El apartado de ‘importaciones’ completo quedaría así:

    import java.io.IOException;
    import java.util.Date;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import com.lowagie.text.Document;
    import com.lowagie.text.DocumentException;
    import com.lowagie.text.PageSize;
    import com.lowagie.text.Paragraph;
    import com.lowagie.text.pdf.PdfPageEventHelper;
    import com.lowagie.text.pdf.PdfWriter;

    Espero que le sirva a alguien. Saludos!!

  3. Muy buen aporte! Muchas gracias!

  4. Hola oye un favor enorme estoy haciendo una aplicacion de escritorio y ya e intentado de mil formas mostrar un pdf que tengo, en un jframe y no puedo visualizarlo que me falta. tengo la libreria y luego? disculpa pero soy muy nuevo en java y aplicando itext es la primera ves.

    Gracias por tu tiempo.

  5. Hola!!
    Necesito crear archivos pdf, desde paginas html, pero de cierta forma mas avanzados, he logrado convertir una página web con código sencillo a pdf y se visualizan de manera idéntica, pero necesito lograr que también me imprima los frames que traen informacion de otras ligas y las funciones javascript que arrojan texto…

    Alguien me podria ayudar?
    Alguna idea de como hacerlo??
    Les agradeceré su ayuda.

  6. Eli, estoy en las mismas, aun no consigo, te paso mi mail y enviame el tuyo en cuanto logre hacer este cometido, ya que debo si o si debo hacerlo.

  7. Aqui les dejo un link bastante interesante!

    http://www.theserverside.com/discussions/thread.tss?thread_id=50057

  8. Hola!!!

    Dos preguntas:

    1. Como funciona HTMLWorker junto con iText, para crear los pdf??
    no hay mucha información sobre ese tema, y aún no consigo convertir un html a pdf por completo.

    2. Se pude leer el html utilizando la estructura DOM pero como imprimir los valores de cada nodo al pdf?? traté de hacerlo obtenido el valor del nodo y mandarlo como variable a un parrafo con iText, pero no funciona.

    O alguna otra forma de convertirlos mediante java??

  9. Excelente info… gracias!!!!

  10. Muchas gracias esa informacion esta muy buena y me sirvio mucho…
    Si desean el itext, no es sino que me digan…

  11. alguien me podria ecir como cambiar el tamaño de fuente

  12. hola, me agradaria la idea de poder hacer exactamente lo mismo pero sin alguna libreria de apoyo,es decir, puro sun Microsystems j2se o j2ee sea el caso.

  13. ¿Cómo se pueden generar tablas en el archivo PDF?… así como matrices que contengan los datos, para que se vea más ordenado??

  14. para neil y eli, hacer pdf en php es bastante facil, yo les puedo ayudar, si gustan, yo asi tengo todos los reportes de mis sistemas pero, como php tiene como limitante el tiempo de ejecucion no peudo manejar grandes cantidades de informacion entonces un sistema lo desarrolle en java y ocupo desarrollar reportes pdf, si no voy a tener que hacerlos ala antigüa con archivos de texto mi correo es jjgonzalezverastegui@hotmail.com

  15. Hola… tengo un proyecto creado en SAP con JDK 1.4, Primero quiero saber si iText funciona con ese JDK y segundo: hay alguna forma un poco mas directa de crear el PDF de un formulario ya creado, es decir como un ImprPant o que simplemente cree el PDF de toda la pagina??? Mil gracias!!!!

  16. salu2 a todos, mire ami me interesa saber como se utiliza esa clase para poder implementarla en un mi proyecto q tengo q entregar, lo cual es un editor de texto, si alguien tiene alguna idea se lo agradeceria, el codigo de arriba no funciona no se xq jejeje, yo tengo el editor de jgrasp, espero q me ayuden gracias

    cuidence

  17. Heey!! A mí si me funcionan los dos primeros ejemplos, los estoy mostrando en jsp pero lo único malo es que no me guarda el archivo ni me muestra la opción de guardar, espero que me puedan ayudar en esa parte.

    Saludos =)

  18. tenes que descomprimir el JAR y importar itextpdf-5.1.1.jar al proyecto

    luego ya puedes importar a la clase las librerias

  19. ¿Como obtener los datos de un PDF y sean mostrasdos en consola de netbeans?

  20. ola tengo una duda estoy trabajando en un proyecto y voy a generar facturas de compras pero necesito jalar datos de una base de datos mysql pero no me sale, lo estoy haciendo con java y la libreria itext pero no se como hacerlo con itext, alguien podria ayudarme? gracias

  21. Como puedo incluir en el diseno del PDF imagenes esto con el fin de crear un documento mas detallado

Deje su comentario

Por favor, ingrese su nombre

Por favor, ingrese un correo-e válido

Por favor, ingrese su mensaje

luauf.com 2012

WordPress