PDF’s met PHP maken

Als je een website maakt (bv een webshop) dan kan het handig zijn om bepaalde zaken als PDF aan te bieden aan de gebruiker. Voor een webshop moest ik de bestellingen in PDF vorm doorsturen naar de klant. Via bepaalde libraries kan je zelf je PDF’s maken maar als je een tabel moet maken of een font hier en andere font daar, dan ben je letterlijk dagen bezig. Dus ging ik zoeken naar een makkelijkere oplossing. Toen kwam ik mPDF tegen. Die laat je toe om HTML om te zetten naar PDF. En het resultaat is verbluffend. Bijna alles rendert het in PDF vorm. Dus je typt of genereert je HTML code en laat die mPDF klasse de PDF maken en opslaan/mailen/versturen naar de browser. En dat met drie regels code!

$mpdf = new mPDF();
$mpdf->WriteHTML(utf8_encode($html)); //ut8_encode omdat é,à,… errors geeft
$mpdf->Output($filename, ‘F’); //als file opslaan

Het enige nadeel is dat de omzetting enorm veel geheugen nodig heeft. Voor alles heeft de klasse makkelijk 15MB nodig of meer, naargelang de grote van je PDF. De ontwikkelaar(s) hebben een compression gemaakt. Hiermee selecteer je welke dingen je wilt laten renderen. Bijvoorbeeld enkel images en tabellen of als extra nog floating div’s. Zo reduceer je het geheugen (tot 7MB). Als je toch alles wilt gebruiken, raad ik aan om de memory_usage in je php.ini te verhogen naar 20MB of meer.