Hola
en principio la mejor manera, o al menos una bastante eficiente y sencilla, es que crees una «versión imprimible» de las páginas que lo requieran estas páginas deberían ser lo más sencillas posibles.
Luego, aplicas un código parecido a este:
Código:
<style type="text/css">
h1 {page-break-before: always;}
</style>
Esto haría que cada vez que aparezca un «h1» se obligue al navegador a utilizar una nueva página.
También podrías hacerlo con clases, por ejemplo así:
Código:
<style type="text/css">
.mi_clase {page-break-before: always;}
</style>
<h1 class="mi_clase">bla bla bla</h1>
<p>...</p>
<h1> bla bla </h1>
Con este ejemplo, lograrías que haya saltos cuando tu quieras, es decir, en un «h1» habrá, pero no en el otro.
Suerte
Felicidad