Treaty attributes table PdfTable Java iText

1

I have the following JAVA code

public class PDF_Clientes_Tabla {
//Ruta del archivo dentro del proyecto de Netbeans.
public static String archivo = System.getProperty("user.dir")+"/listado_clientes_tabla.pdf";

public static void crearPDF(ArrayList<Cliente> clientes) throws DocumentException{
    //Declaramos un documento como un objecto Document. 
    Document documento = new Document(PageSize.LETTER, 80, 80, 75, 75);
    //writer es declarado como el método utilizado para escribir en el archivo.
    PdfWriter writer = null;

    try{
        //Obtenemos la instancia del archivo a utilizar.
        writer = PdfWriter.getInstance(documento, new FileOutputStream(archivo));
    }catch(FileNotFoundException | DocumentException ex){
        ex.getMessage();
    }

    //Agregamos un título al documento.
    documento.addTitle("ARCHIVO PDF GENERADO DESDE JAVA");

    //Abrimos el documento a editar.
    documento.open();

    try{
        //Obtenemos la instancia de la imagen/logo.
        Image imagen = Image.getInstance("..\imagenes\LOGO.png");
        //Alineamos la imagen al centro del documento.
        imagen.setAlignment(Image.ALIGN_CENTER);
        //Agregamos la imagen al documento.
        documento.add(imagen);
    }catch(IOException | DocumentException ex){
        ex.getMessage();
    }

    //Creamos un párrafo nuevo llamado "vacio1" para espaciar los elementos.
    Paragraph vacio1 = new Paragraph();
    vacio1.add("\n\n");
    documento.add(vacio1);

    //Declaramos un texto llamado "titulo" como Paragraph. 
    //Le podemos dar formato alineado, tamaño, color, etc.
    Paragraph titulo = new Paragraph();
    titulo.setAlignment(Paragraph.ALIGN_CENTER);
    titulo.setFont(FontFactory.getFont("Times New Roman", 24, Font.BOLD, BaseColor.RED));
    titulo.add("***LISTADO DE CLIENTES***");

    try{
        //Agregamos el texto "titulo" al documento.
        documento.add(titulo);
    }catch(DocumentException ex){
        ex.getMessage();
    }

    //Creamos un párrafo nuevo llamado "saltolinea1" simulando un salto de linea para espaciar
    //los elementos del PDF.
    Paragraph saltolinea1 = new Paragraph();
    saltolinea1.add("\n\n");
    documento.add(saltolinea1);

    //Añadimos una tabla de 7 columnas. 
    PdfPTable tabla = new PdfPTable(7); 
    //Datos de porcentaje a la tabla (tamaño ancho).
    tabla.setWidthPercentage(100);
    //Datos del ancho de cada columna.
    tabla.setWidths(new float[] {15, 20, 10, 10, 30, 10, 10});

    //Añadimos los títulos a la tabla. 
    Paragraph columna1 = new Paragraph("NOMBRE");
    columna1.getFont().setStyle(Font.BOLD);
    columna1.getFont().setSize(10);
    tabla.addCell(columna1);

    Paragraph columna2 = new Paragraph("APELLIDOS");
    columna2.getFont().setStyle(Font.BOLD);
    columna2.getFont().setSize(10);
    tabla.addCell(columna2);

    Paragraph columna3 = new Paragraph("DNI");
    columna3.getFont().setStyle(Font.BOLD);
    columna3.getFont().setSize(10);
    tabla.addCell(columna3);

    Paragraph columna4 = new Paragraph("TLF_CONTACTO");
    columna4.getFont().setStyle(Font.BOLD);
    columna4.getFont().setSize(10);
    tabla.addCell(columna4);

    Paragraph columna5 = new Paragraph("DIRECCION");
    columna5.getFont().setStyle(Font.BOLD);
    columna5.getFont().setSize(10);
    tabla.addCell(columna5);

    Paragraph columna6 = new Paragraph("CIUDAD");
    columna6.getFont().setStyle(Font.BOLD);
    columna6.getFont().setSize(10);
    tabla.addCell(columna6);

    Paragraph columna7 = new Paragraph("EMAIL");
    columna7.getFont().setStyle(Font.BOLD);
    columna7.getFont().setSize(10);
    tabla.addCell(columna7);

    //Recorremos cada arrayList e imprimimos los resultados. 
    for (int i = 0; i<clientes.size(); i++){ 
        tabla.addCell(clientes.get(i).getNombre()); 
        tabla.addCell(clientes.get(i).getApellidos()); 
        tabla.addCell(clientes.get(i).getDNI()); 
        tabla.addCell(clientes.get(i).getTlf_contacto()); 
        tabla.addCell(clientes.get(i).getDireccion()); 
        tabla.addCell(clientes.get(i).getCiudad()); 
        tabla.addCell(clientes.get(i).getEmail()); 
    } 

    //Añadimos la tabla "tabla" al documento "documento".
    documento.add(tabla);   
    //Cerramos el documento.
    documento.close();
    //Cerramos el writer.
    writer.close();
}

}

and the following sample image:

How can I change the size of tabla.addCell(clientes.get(i).getNombre()); ?

    
asked by omaza1990 30.12.2016 в 02:06
source

2 answers

1

If you mean letter size:

 for (int i = 0; i<clientes.size(); i++){ 
        columna1 = new Paragraph(clientes.get(i).getNombre());
        columna1.getFont().setSize(7);
        tabla.addCell(columna1);

        columna2 = new Paragraph(clientes.get(i).getApellidos());
        columna2.getFont().setSize(7);
        tabla.addCell(columna2);
        ...
        ...
    }

Greetings,

    
answered by 30.12.2016 / 13:39
source
0

you can try this so I do it
this example is from a table of three colmns

  float[] medidaCeldas = {2.40f,6.70f,7.70f};  //          
  MiTable.setWidths(medidaCeldas);
    
answered by 06.11.2017 в 18:22