[Metodos] Generar archivos PDF en Java (c/ iTextPDF)


Parte I - Hola PDF!!!


Para poder crear un archivo pdf sencillo desde el codigo de JAVA vamos a usar la libreria iTextPDF, simplemente agregando el nuevo jar a nuestro proyecto o dejandoselo en manos de un gestor de dependencias como maven, que ademas te da la opcion de descargarlo manualmente para un proyecto pequeño.

Para hacer nuestro 'Hola mundo' solamente se requieren 6 pasos:

  1. Creamos virtualmente el documento que vamos a trabajar, a través de la clase Document propia de iTextPDF:
    • Document documento = new Document();

  2. Creamos un FileOutputStream pasando como parametro un String que será el path donde se va a generar el PDF. Esto puede traer aparejado algunos pequeños problemas, como que la ruta no exista, que no contemos con permisos para escribir, etc De encontrarse el archivo, se sobreescribe:
    • FileOutputStream fos = new FileOutputStream();

  3. Nuestro próximo paso es llamar al escritor de PDF de itextPDF(PdfWriter) a tráves de su método estático pasandole el documento y un OutputStream como parámetro y tmb indicandole el nivel de espacio entre líneas que va a acontener el documento como un Integer:
    • PdfWriter pdfW = PdfWriter.getInstance(documento, fos);
      pdfW.setInitialLeading(20);

  4. Ahora estamos listos para 'abrir' nuestro documento, que virtualmente ya tiene forma, y comenzar a introducir contenido en él:
    • documento.open();

  5. Para introducir texto como el 'hola mundo', vamos a de crear un objeto Paragraph, propio de iTextPDF, inicializandolo con el String que vayamos a introducir como parámetro del constructor:
    • Paragraph paragraph = new Paragraph("Hola PDF");
      documento.add(paragraph );

  6. Se cierra el documento:
    • documento.close();
Luego de todo esto, mi resultado fué:


Mi código completo es:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
public void exportarPDF() {
    Document documento = new Document();

    String escritorio = System.getProperty("user.home")+"/Desktop/miPDF.pdf";
    FileOutputStream fos;
    try {
        fos = new FileOutputStream(escritorio);

        PdfWriter pdfW = PdfWriter.getInstance(documento, fos);
        pdfW.setInitialLeading(20);

        documento.open();

        Paragraph paragraph = new Paragraph("Hola PDF");

        documento.add(paragraph);
    } catch (FileNotFoundException | DocumentException e) {
        e.printStackTrace();
    }
    documento.close();
}

Comparte esto:





No hay comentarios:

Publicar un comentario