Have you considered breaking a table into multiple pages? I have done this in the past, measuring how big the page will be, and then writing the lines to the browser. Each time the end of the page was reached, I would close the table written, then start the next one by typing a new DIV, etc. You need to keep track of the maximum size of each column, etc., But in terms of efficiency, we could write thousands of lines per screen and, as a rule, would return up to 60 seconds for large reports.
I also used the CSS orientation function, available only in IE (recording mode: tb-rl), to simulate the page displayed in the landscape, and the content as well - this requires a bit more thought about rewriting it, BUT the resulting content looked very professional.
burgen
source share