Dovendo creare al volo dei PDF scaricabili popolando la pagina con i dati provenienti da db o da altri contenuti dinamici anche in CakePHP si può utilizzare la classe PHP Open Source PHP chiamata TCPDF. Questo ci permette di creare documenti PDF e renderli disponibili per il download.
L’installazione non è difficile e fortunatamente è documentata passo passo nel Bakery.
Quello che nella guida non dicono è che le funzioni
WriteHTML();
e
WriteHTMLCell();
che permettono di passare del codice html alla classe che si occupa di “tradurlo” in pdf, sovraccaricano moltissimo il server.
Quindi se hai un documento piuttosto complesso ti conviene costruire pezzetto per pezzetto, piuttosto che passare tutto in un unico pacchetto di dati alla funzione di output
echo $tcpdf->Output('filename.pdf', 'D');
Altra cosa: se nel documento alleghiamo delle immagini dobbiamo essere sicuri che nel nostro server sia disponibile cURL, la Client URL Library, altrimenti non verranno inserite.
Per aggiungere dei font custom la documentazione di TCPDF è disignosa però io trovato utilissima questa cosa: un tool che consente di convertire i font ttf nel formato .z and .php. Una volta generati i file basta spostarli dentro la directory /fonts e settare il font-name attribute.
Se hai difficoltà non esitare a chiedere una consulenza. Sarò ben lieto di poterti aiutare a realizzare il tuo PDF utilizzando il framework CakePHP.