27 Aug 2009

Créer des PDF avec PHP

Tcpdf

Ça fait déjà quelques personnes qui me posent la question: Comment faire un PDF en PHP de façon dynamique? Pour les plus courageux qui ont beaucoup de temps devant eux, je dirais que FPDF fait le travail. Mais puisque je n'ai généralement pas le temps de placer chaque élément 1 par 1 et que je suis beaucoup plus doué en HTML qu'en code FDPF, je vous suggère plutôt TCPDF (qui utilise de toute facon FPDF).

Écriture de PDF en HTML avec la fonction writeHTML

Comme je vous disais, je maitrise beaucoup mieux la rédaction de code HTML que le placement d'éléments 1 à 1. Ce qui est merveilleux, c'est que c'est possible de mettre en page des PDF avec la syntaxe html grâce à la fonction writeHTML de TCPDF. Exemple:

$htmlcontent = "";
$htmlcontent .= "";
$htmlcontent .= "";
$htmlcontent .= "";
$htmlcontent .= "
$nom
$date
$courriel
";
$htmlcontent .= "";
// Écrire
$pdf->writeHTML($htmlcontent, true, 0, true, 0);

Documentation de la fonction writeHTML

Concaténation (merge) de plusieurs documents

Une autre fonction très pratique de cette librairie (combinée à FPDI) est la fonction de concaténation ou merge de plusieurs documents PDF. Ça permet entre autres de joindre à un document PDF statique un document PDF dynamique. Donc pour générer par exemple un contrat, où les coordonnées du clients seraient sur une page et les conditions du contrat seraient sur une autre page, c'est l'idéal. Exemple:

$pdf =& new concat_pdf();
$pdf->setFiles(array($couverture, $coord, $clauses, $revers));
$pdf->concat();

$pdf->Output("../output/contrat_".$noContrat.".pdf", "F");

Documentation de la fonction concat Beaucoup d'autres fonctions sont disponibles, vous n'avez qu'à visiter le site du projet la documentation est très claire. En espérant avoir pu vous aider à faire avancer votre projet! Projet TCPDF