Skip to main content
Skip table of contents

How to write a table header if part of a table is forwarded to the next page?

I want this page to have table header row as well. However, I want this header row only when the table data goes on new page.

I am using PdfWriter to create a PDF document. I am adding a PdfPTable to the PDF document. This table has header row and then actual data rows. If the table is big, then part of it gets carried forward to new page. I want this page to have table header row as well. However, I want this header row only when the table data goes on new page.

Posted on StackOverflow on Sep 15, 2015 by Amit Ware

This is how you create a table with a header row in iText 7:

// table with 2 columns:
Table table = new Table(2);
// header row:
table.addHeaderCell("Key");
table.addHeaderCell("Value");
// many data rows:
for (int i = 0; i 

In this case, the table needs more than one page. As you used addHeaderCell(), the first row will be repeated:

Repeating header

Repeating header

If you don't want the header to be present on the first page, you have to add a single line: table.setSkipFirstHeader(true);

// table with 2 columns:
Table table = new Table(2);
// header row:
table.addHeaderCell("Key");
table.addHeaderCell("Value");
table.setSkipFirstHeader(true);
// many data rows:
for (int i = 0; i 

Now the table looks like this:

Repeating header

Repeating header

Click How to write a table header if part of a table is forwarded to the next page? if you want to see how to answer this question in iText 5.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.