How to create a table with rounded corners?
I want something like this:
Can I do it with iTextSharp?
Posted on StackOverflow on May 14, 2014 by AndreaNobili
This is done using cell events.
Make sure that you don't add any "automated" borders to the cell, but draw the borders yourself in a cell event:
table.DefaultCell.Border = PdfPCell.NO_BORDER;
table.DefaultCell.CellEvent = new RoundedBorder();
The RoundedBorder
class would then look like this:
class RoundedBorder : IPdfPCellEvent {
public void CellLayout(PdfPCell cell, Rectangle rect, PdfContentByte[] canvas) {
PdfContentByte cb = canvas[PdfPTable.BACKGROUNDCANVAS];
cb.RoundRectangle(
rect.Left + 1.5f,
rect.Bottom + 1.5f,
rect.Width - 3,
rect.Height - 3, 4
);
cb.Stroke();
}
}
You can of course fine-tune the values 1.5, 3 and 4 to get different effects.