This is done using cell events.
See the Calendar example from my book (Java / C#).
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.