5
votes

This code below does not work.

Table table = new Table(2); 
table.setBorder(Border.NO_BORDER);

I am new to iText 7 and all I wanted is to have my table borderless. Like how to do it?

2

2 Answers

11
votes

The table itself is by default not responsible for borders in iText7, the cells are. You need to set every cell to be borderless if you want a borderless table (or set the outer cells to have no border on the edge if you still want inside borders).

Cell cell = new Cell();
cell.add("contents go here");
cell.setBorder(Border.NO_BORDER);
table.addCell(cell);
6
votes

You could write a method which runs though all children of a Table and sets NO_BORDER.

private static void RemoveBorder(Table table)
{
    for (IElement iElement : table.getChildren()) {
        ((Cell)iElement).setBorder(Border.NO_BORDER);
    }
}

This gives you the advantage that you can still use

table.add("whatever");
table.add("whatever");
RemoveBorder(table);

instead of changing it on all cells manual.