Что ж, если вы начнете с массива высоты и ширины для каждого слова, вам нужно будет использовать несколько возможностей, пока вы не найдете минимальный мусор (пространство между словами и) для данной ширины: высота
Обычно вы начинаете с
ratio := 6 / 4
noOfLines := totalWidth / ( ratio * lineHeight )
targetLineWidth := totalWidth / noOfLines
и затем пытаетесь определить, после каких слов вы ставите разрывы строк, чтобы минимизировать пробел между словами.
Если вы пытаетесь минимизировать пробел в каждой строкеВы можете получить дополнительное место в последней строке.Если вы сначала убедитесь, что даже последняя строка равномерно распределена, то вам следует изучить всего несколько вариантов.
РЕДАКТИРОВАТЬ
Если вы хотите использовать точные метрики шрифта этот вопрос выглядит полезным.