Весь прикол, что подсчетом символов вы нечего не добьетесь, так как символы разные по ширине, также возможно, что есть разные сшрифты с разними размерами, да еще плюс перенос слов, тут прийдется сумашедшую вычислительную машину делать для подщета всего этого.
Как уже предлогал, я вижу в этом решение, тоесть выводить текст на сраницу с помощью метода "разделяй и властвуй" и проверят скоко текста вывелось, с помощи Java-Script отпровляет высоту, если много -- делим на 2, если мало то добовляем половину поделеного.. и таким методом подходим к границе допуснимого размера.