When using writeSelectedRows()
, it doesn't make sense to set the width percentage to 100%. Setting the width percentage is meant for when you add a document using document.add()
(which is a method you can't use in a page event). When using document.add()
, iText calculates the width of the table based on the page size and the margins.
You are using writeSelectedRows()
, which means you are responsible to define the size and the coordinates of the table.
If you want the table to span the complete width of the page, you need:
table.TotalWidth = document.Right - document.Left;
You're also using the wrong X-coordinate: you should use document.Left
instead of 150
.
Additional info:
- The first two parameters define the start row and the end row. In your case, you start with row 0 which is the first row, and you don't define an end row (that's what -1 means) in which case all rows are drawn.
- You omitted the parameters for the columns (there's a variation of the
writeSelectedRows()
that expects 7 parameters). - Next you have the X and Y value of start coordinate for the table.
- Finally, you pass a
PdfContentByte
instance. This is the canvas on which you're drawing the table.