Ajustar líneas de texto dentro de los límites de la imagen usando gd

Estoy tratando de escribir texto de una base de datos a las imágenes. El texto algunas veces contiene líneas largas para que no se ajuste a una línea en la imagen.

A partir de ahora estoy obteniendo la salida como:http://prntscr.com/29l582

Este es el código para esto:

$imageCreator = imagecreatefrompng($i+1 . ".png");
        $textColor = imagecolorallocate($imageCreator, 0, 0, 0);
        $textfromdb = $factformatted['fact'];
        $y = imagesy($imageCreator) - 228;
        $dimensions = imagettfbbox(20, 0, $fontname, $textfromdb);
        $x = ceil(($imageWidth - $dimensions[4]) / 2);
        imagettftext($imageCreator, 20, 0, $x, $y, $textColor, $fontname, $textfromdb);
        imagepng($imageCreator, "./fact".$i.".png");

¿Puede alguien ayudarme a hacer que funcione?