Ci sono vari modi per farlo a seconda dei requisiti (es. si tratta di un cron, il server è di proprietà, è una semplice webapp):

1. Implementi un algoritmo che si occupa di capire quando devi andare a capo (es. aggiungendo una parola alla volta e usando https://www.php.net/imageftbbox per sapere se hai superato la larghezza massima)

2. Usi una tecnologia come https://wkhtmltopdf.org/

3. Usi una soluzione clientside http://html2canvas.hertzen.com/