[Métodos] Generar archivos PDF con estilo desde Java (c/ iTextPDF) - Parte II


Parte II - Agregar Contenido al PDF


Texto

  • Tamaño
  • Fuente
  • Color
  • Alineacion
  • Decoracion
Empezando por el texto, para definirle algun estilo, el codigo anterior nos basta, solo que esta vez elegiremos algun otro constructor que no este vacio y setee los valores por defecto

public void exportarPDF() {
    Document documento = new Document();

    Calendar cal = Calendar.getInstance();
    Long milis = cal.getTimeInMillis();
    String nombreUnicoArchivo = "/Desktop/miPDF-" + milis + ".pdf";
    String rutaFinalArchivo = System.getProperty("user.home") + nombreUnicoArchivo;
    FileOutputStream fos;
    try {
        fos = new FileOutputStream(rutaFinalArchivo);

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

        documento.open();

        Paragraph paragraph = new Paragraph(/*PASAR PAREMETROS PARA EL ESTILO DESEADO*/);

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



Para poder poner un poco de estilo, uso el ultimo constructor String string, Font font, con la diferencia que en lugar de poner un objeto 'font' uso un método de clase(estático) de FontFactory que devuelve ese objeto:

  • public static Font getFont(String fontname, float size, int style, BaseColor color)
  • String fontname: es la tipografia que usará el texto:

  • float size: es el tamaño, obviamente como un número con coma flotante
  • int style: es el estilo, y también son constantes que podemos usar de la clase Font
  • color: y para el color, podemos usar las constantes o llamar al constructor con los valores RBG




public void exportarPDF() {
    Document documento = new Document();

    Calendar cal = Calendar.getInstance();
    Long milis = cal.getTimeInMillis();
    String nombreUnicoArchivo = "/Desktop/miPDF-" + milis + ".pdf";
    String rutaFinalArchivo = System.getProperty("user.home") + nombreUnicoArchivo;

    FileOutputStream fos;
    try {
        fos = new FileOutputStream(rutaFinalArchivo);

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

        documento.open();

        Paragraph paragraph = new Paragraph("dar10comyr\n.blogspot\n.com",
                FontFactory.getFont(FontFactory.COURIER, 72, Font.UNDERLINE, BaseColor.ORANGE));

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


el final ha sido, mejorando considerablemente a la vez pesada. Pero aun se puede hacer mucho y a ello vamos!