Générer des PDF en PHP

Il peut s’avérer utile de générer des pdf 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 pdflib téléchargeable en version 2.1.4 sur http://pecl.php.net/package/pdfli. Le code est plus long mais le support de pdflib sera plus pérenne.

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

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

pdf_set_info($pdf, »Author », »Vous »);
pdf_set_info($pdf, »title », »Votre recette »);
pdf_set_info($pdf, »Creator », »Nom du site »);
pdf_set_info($pdf, »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($pdf,595,842);
pdf_add_bookmark($pdf, »fiche $recette »,0,0);
$font=pdf_findfont($pdf, »Helvetica », »host »,0);

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

}

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

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

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

$fichier= fopen(« fichier-recette.pdf », » w+ « );
fwrite($fichier, $buf);
fclose($fichier);

  •  
  •  
  •  
  •  
  •  
  • PHP+-+File: /home/vps_useracct/b2l.me/functions.php
    Line: 66
    Message: Duplicate entry 'w9zb' for key 2&source=shareaholic" rel="nofollow" class="external" title="Tweetez-le !"> 
  •  
  •  
  •  
BlogBang

A voir aussi

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

A voir

Seemply est une plateforme nouvelle génération permettant de créer un site internet vitrine ou e-commerce très facilement dans une offre tout compris. Quelques secondes suffisent pour mettre en ligne vos textes, images, diaporamas, produits et ainsi augmenter votre clientèle.