How to write a table header if part of a table is forwarded to the next 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 fo

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 this link if you want to see how to answer this question in iText 5.


Share this article

Ready to use iText?

Try our iText 7 Library and add-ons FREE for 30 days. Test your proof of concept, and see if our solution is right for you.

Get my FREE trial
Contact

Still have questions? 

We're happy to answer your questions. Reach out to us and we'll get back to you shortly.

Contact us
Stay updated

Join 11,000+ subscribers and become an iText PDF expert by staying up to date with our new products, updates, tips, technical solutions and happenings.

Subscribe Now