
Produrre documenti in formato PDF è una funzionalità frequentemente usata nelle applicazioni web: si pensi, ad esempio, alla redazione diretta di documenti destinati alla stampa come report e preventivi. Il linguaggio PHP offre diverse alternative in materia, tutte efficaci ma connotate da vantaggi e svantaggi. La soluzione “nativa” consiste in PDFlib, scritta in C ed integrabile come modulo tramite ricompilazione del linguaggio: lo svantaggio principale di questa libreria – peraltro ricchissima di caratteristiche – è la licenza cui è soggetta, di natura commerciale.
In alternativa, si possono utilizzare altre due librerie, entrambe sottoposte a licenza open source e scritte direttamente in PHP quindi meno veloci di PDFlib, ma direttamente integrabili nei progetti: FPDF e R&Os.
Entrambe queste librerie hanno un’ampia comunità a sostegno che produce costantemente tutorial, esempi e patch.
Focalizzandoci su R&Os, a titolo di esempio, la si può installare direttamente tramite Composer con il comando:
./composer.phar require rospdf/pdf-php
e la si usa istanziando un oggetto Cezpdf come il seguente:
$pdf = new Cezpdf('a4','portrait','color',array(0.8,0.8,0.8));
specificando poi margini, font e molti altri parametri:
$pdf->ezSetMargins(20,20,20,20); $pdf->selectFont('Times-Roman'); ...
Anche in questo caso, PHP offre solo l’imbarazzo della scelta da commisurare alle proprie esigenze e caratteristiche dei propri server.
E voi come realizzate PDF nei vostri siti web ? Avanti, fateci sapere !
One Response to “Risorse utili per creare PDF in linguaggio PHP”
17 Ottobre 2016
DiegoFpdf è potente quanto complesso da utilizzare. Negli ultimi anni ho preferito creare le pagine in html e utilizzare una libreria per convertirle in PDF.
Permette a più persone di metterci le mani, essendo l’html più semplice.
Per fare ciò ho utilizzato per un po’ di tempo mpdf (basato su fpdf), ma per problemi prestazionali mi sono spostato su wkhtml2pdf. Quest’ultimo, utilizzando webkit come motore di rendering, non ha problemi con css e tag html nidificati in modo complesso come accadeva invece con mpdf.
Ah, dimenticavo, entrambi hanno licenze gratuite!