This is an "issue" I've visited many times. Unfortunately, formatting HTML to be viewed in a web page that will print exactly the way you want is near impossible---you aren't allowed that kind of control over the formatting with HTML.
With CSS, you can insert page breaks.
http://www.w3.org/TR/REC-CSS2/page.html
The other problem people have is how to know when to insert the page-breaks. For example, if I have 500 rows of data to print in a report, and I want a header and footer on all pages, and I want each page to nicely fit an 8.5 x 11 page, how many records can I print on each page? Good question! All you can do is set the font-size and line-height, etc using CSS, then make your best guess (trial and error) as to how many lines fit per page. If you have to deal with lines possibly wrapping---ouch--your job is that much more difficult.
If you REALLY need the report to look professional, and exact formatting is required, then this is what PDF's are designed for. You can programattically generate PDF's on the fly and serve to your customers on your website. Moderator Tgreer (
www.tgreer.com) on this forum is one of the leading Postscript / PDF experts in the country and can provide further assistance. Maybe he will chime in on this thread.