можно пробовать колонки.
https://habrahabr.ru/post/153955/
но количество нужно подбирать каким то скриптом чтобы по высоте норм было.
лучше думаю писать сразу js скрипт который разбивает текст по страницам, то есть добавляет к тексту страницы по слову например чтобы по высоте она стала со страницу, и далее идет на следующую.
в любом случае постраничено можно разбить только на фронте, тк только там известны параметры текста, чтобы правильно по страницам разбить.