Готового решения - нет. Нужно двигать (удалять/вставлять) каждый неправильно расположенный разрыв страницы.
Единственное что я бы предложил при выводе отчёта как-то маркировать такие наборы строк, которые нельзя разрывать. Например делать напротив таких строк в отдельном столбце вертикальное объединения ячеек. И потом не считать высоту, а просто проверять какие из переносов попали на эти блоки и сдвигать эти переносы в начало блока
|