I want to add footer with 2 rows. The 1st row will have the document name with a background color. The 2nd row will have copyright notices. I tried to create this table using
ColumnText, but I am not able to set the background color for the row (only the text is getting background color).
You can set the background of a cell using the
setBackgroundColor() method and you can add a table at an absolute position using the
Take a look at the TableFooter example:
PdfPTable table = new PdfPTable(1); table.setTotalWidth(523); PdfPCell cell = new PdfPCell(new Phrase("This is a test document")); cell.setBackgroundColor(BaseColor.ORANGE); table.addCell(cell); cell = new PdfPCell(new Phrase("This is a copyright notice")); cell.setBackgroundColor(BaseColor.LIGHT_GRAY); table.addCell(cell);
If you have more than one cell in a row, you need to set the background for all cells. Note that I'm defining a total width for the table (523 is the width of the page minus the margins). The total width is needed because we'll add the table using
footer.writeSelectedRows(0, -1, 36, 64, writer.getDirectContent());
The resulting PDF looks like this. Make sure you define the margins of your page in such a way that the footer table doesn't overlap with the page content.
Click this link if you want to see how to answer this question in iText 7.