Ok ma tutto questo lo stai spiegando e facendo capire solo adesso. Mai parlato di larghezza FISSA delle colonne.
Premesso che il font deve essere a larghezza fissa perché altrimenti la larghezza può non essere di 30 caratteri, ti basta calcolare il numero di righe necessarie per ogni colonna (dividendo la lunghezza della stringa corrispondente per 30 e approssimando al prossimo intero) e poi ottieni il valore massimo che hai ottenuto tra tutte le colonne.
Ad esempio con 3 colonne
lunghezza prima colonna 40 caratteri … 40 / 30 … approssimato 2
lunghezza seconda colonna 20 caratteri … 20 / 30 … approssimato 1
lunghezza terza colonna 70 caratteri … 70 / 30 … approssimato 3
Predi il massimo tra 2, 1 e 3 … quindi 3 e moltiplica per l'altezza del font e quindi assegna il risultato all'altezza della riga
Una alternativa è quella indicata in questo articolo, che però è vecchiotto e non so se funziona, provalo
https://jeffpar.github.io/kbarchive/kb/178/Q178127/