Нечто подобное звучит возможно с использованием javascript, но это немного зависит от структуры вашего html и от того, хотите ли вы разбить абзацы или просто переместите следующий абзац на следующую страницу, если он не подходит
Итак, самый простой пример - не разбивать абзацы / элементы html с плоской структурой html (без вложенных элементов div, столбцов и т. Д.), Например:
<div class="document">
<h1>title</h1>
<p>texts</p>
<h2>subtitle</h2>
<p>texts</p>
...
<p>texts</p>
</div>
будет делать что-то вроде:
height = 0
loop through all direct child elements of .document
{
if ( (height + element_height) > page_height)
{
add page_break_element before current element
height = 0
}
height = height + element_height
}
Я бы использовал jquery , потому что он позволяет легко проходить по элементам, измерять высоту и т. Д.
Полагаю, что разбить абзацы тоже можно, но много дополнительной работы.