How to create a table with rounded corners?

Tags: tablescell eventcell borderrounded cornersiText 5

I have to create a table having rounded corners, something like it:

Cell with rounded border

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.