First.. sorry 'bout the "en" thing. My bad. "em" is, of course the correct unit of measure.
Next: If you're separating TABLES with a "<br />" tag, you should remember that tables are, by default displayed as "block" elements.. which carry their own spacing at the top and bottom.
If you're trying to control the breaking of a single TABLE across multiple pages... you're probably going to have a hard time (which, apparently, you are.)
I notice that, in your pseudo-code, you've got a
<br class="pageEnd" />
listed inside a table...
Where exactly is it? The only valid spot for a "<br />" tag within a table is INSIDE a <td> or <tr> cell, within the content of the cell.
If you're page-breaking between two tables, you should be able to just "inline" style it on the second table, like:
<table style="page-break-before:always;margin-top:0px;">
Also, cLFlaVA is correct: it would be helpful to see the "results" of your ColdFusion page, so we can see what actually gets sent to the browser.
I hope that helps at leas a little. Good luck on your project.
[red]Note:[/red] [gray]The above comments are the opinionated ravings of Mr3Putt. As such, Mr3Putt accepts no responsibility for damages, real or contrived, resulting from acceptance of his opinions as fact.[/gray]