Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iText 7 borderless table (no border)

Tags:

java

itext

itext7

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?

like image 989
The Newbie Avatar asked Jan 12 '17 08:01

The Newbie


People also ask

How to remove borders of table in iText?

Hence: if you want to remove the borders of the table, you need to remove the borders of each cell. Note that there is no PdfPCell class in iText 7 anymore, you should use Cell instead. table. setBorder(Border.


2 Answers

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);
like image 104
Samuel Huylebroeck Avatar answered Oct 09 '22 22:10

Samuel Huylebroeck


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.

like image 38
18thAngel Avatar answered Oct 09 '22 21:10

18thAngel