Генерируем отчетность в PDF, используем wkhtmltopdf - длина документа бывает разной и частенько блок с подписями в конце переносится на новую страницу вследствие чего ответственное лицо отказывается подписывать пустой лист.
Покурил мануал
madalgo.au.dk/~jakobt/wkhtmltoxdoc/wkhtmltopdf-0.9... подходящей опции вроде "~переносить на новую страницу "кусками" не менее N% от высоты страницы" (конечно же не прямо такую формулировку искал, но смысл, надеюсь, передал) - не нашел. Наверное, было бы странным разработчикам пилить такую опцию ибо, скорее, это задача самого HTML документа (вставлять разрывы).
Далее, пошел со стороны документа: первое, что приходит в голову - каким-то образом на стороне HTML размечать разрывами документ.. Может быть есть какой-то вариант с помощью CSS измерять высоту документа и вставлять разрыв размечая порциями под формат А4??
Но даже не это самое главное - разметить под А4 - это и сам wkhtmltopdf делает перенося на новую страницу то, что не влезает... Смысл то в том, чтобы контент для последней страницы перенести так, чтобы на ней не остался только блок с подписями... Понятное дело - то же самое происходит и на обычном принтере если на него, например, отправить документ из Word'a или откуда угодно еще. При этом контент может точно так же распределиться и на последнюю страницу перенесется только блок с подписями.. Что бы я сделал в таком случае - исправил бы руками - на предыдущих страницах равномерно вставил бы переносы и по чуть-чуть отрезал контент, чтобы на последнюю страницу перенеслось больше и блок с подписями не остался в гордом одиночестве. При этом на предыдущих страницах эти мои "чуть-чуть" небыли заметны..
Мысль приходит к такому выводу, что нужно сделать то же самое, только CSS'ом - после генерации HTML нужно как-то посчитать его высоту (пропорционально единицам, которые будут при печати), поделить всю длину на высоту A4 и вычислить высоту последнего блока, если она меньше или примерно равна заданной (заданная - это высота блока с подписями), то для всех предыдущих блоков уменьшить высоту так, чтобы высота последнего блока увеличилась и вставить в рассчитанные места разрывы...
Причем нужно не перестараться и не "надобавлять" контента на последнюю страницу в таком кол-ве, что он не влезет на нее ))) То есть в документе может быть 5 страниц, а может быть и 105 страниц и если отрезать просто фикс от каждой страницы, то мы рискуем получить еще N страниц и не факт, что на последней не будет той же проблемы с одиноком блоком с подписями...
В общем, чувсвтую, что вопрос выходит за рамки технологий ) и переходит в разряд логики решения задачи и танцев с бубном )))
Буду признателен за размышления и советы.