Générer des PDF en PHP

Il peut s’avérer utile de générer des disponibles au téléchargement à partir d’une base de donnée sur son site. Voici donc les bibliothèques disponibles ainsi qu’un exemple par la pratique.

Il existe un certain nombre de bibliothèques de code gratuites et de bonnes qualité pour cela. Comme FPDF sur www.fpdf.or

, 6 lignes de code seulement sont nécessaires pour générer un document, FPDF étant compatible PHP 4 et PHP 5.

Autre solution, utiliser le package standard PECL téléchargeable en version 2.1.4 sur http://pecl.php.net/package/pdfli. Le code est plus long mais le support de sera plus pérenne.

Voici donc un exemple de script permettant de générer vos de façon automatisée à partir d’une base de données:

<?php
$pdf=_new();
if (!pdf_open_file($,”"))
{
print(”Error”);
exit(0);
};

pdf_set_info($,”Author”,”Vous”);
pdf_set_info($,”title”,”Votre recette”);
pdf_set_info($,”Creator”,”Nom du site”);
pdf_set_info($,”Subject”,”ce que vous voulez”);

$dblink=mysql_connect(”localhost”,”root”,”");
mysql_select_db(”nom_de_la_base”);
$sql=”SELECT * FROM recettes”;
$resultat=mysql_query($sql);
$liste=”";

while ($recette=mysql_fetch_array($resultat))
{
$nom=$recette[’nom’];
pdf_begin_page($,595,842);
pdf_add_bookmark($,”fiche $recette”,0,0);
$font=pdf_findfont($,”Helvetica”,”host”,0);

if ($font) pdf_setfont($,$font,12);
pdf_set_value($,”textrendering”,1);
pdf_show_xy($,”$recette”,50,750);
pdf_moveto($,50,740);
pdf_stroke($);
pdf_end_page($);

}

mysql_close($dblink);
pdf_close($);
$buf=pdf_get_buffer($);
$len=strlen($buf);

header(”Content-type: application/”);
header(”Content-lenght: $len”);
header(”Content-Disposition: inline; filename=fichier-recette.”);
print($buf);
pdf_delete($);
?>

Si vous souhaiter enregistrer le fichier au lieu de l’afficher remplacer les lignes allant de “header” à “print($buf);” par:

$fichier= fopen(”fichier-recette.”,” w+ “);
fwrite($fichier, $buf);
fclose($fichier);

Popularité : 21% [?]

Laisser un commentaire

Vous pouvez utiliser ces balises XHTML tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>