When you create a table, you ALWAYS know the width of the table, be it because you've defined the absolute width(s of the columns) yourself, or because you know the available width on the page in combination with the width percentage of the table.
Now it's up to you to distribute the columns over different pages. You can do this with the writeSelectedRows()
method as shown in this example from my book.
Of course: it's more difficult than that simple example, as you'll also want to make sure the rows fit the height of the page, but that's another question.