Чтобы такое реализовать, нужно точно знать, какой ширины буквы, сколько слов вмещается в строку, знать высоту строки. Ширину каждого символа для конкретного размера шрифта нужно замерить и поместить в ассоц. массив для последующего использования. Далее последовательно идти по тексту, по каждой букве и рассчитывать, влезет слово в текущую строку или нет (возможно, с учётом знаков переноса), начинать новую строку, рассчитывать суммарную высоту текста и т.д. В итоге после каждого фрагмента текста вставлять какой-нибудь управляющий символ, например \f (подача страницы), т.е. как бы приготовить текст для будущей быстрой разбивки на страницы. Как-то так я бы сделал. Таким способом можно учитывать и высоту встроенных картинок. И это не сложно, если нужно. Если текстов много, можно поручить работу исполняемому файлу через CGI.
ну ТС доволен и ушел. Что он под своими формулировками поразумевал на самом деле мы вообще можем только догадываться. Поэтому надо сначала давать решение по-проще, Если не прокатило - по-сложнее. За это: Хамство чистой воды. Это пожалуйста у себя на кухне.