Modérateur PHPfrance |
8758 Messages
13 mai 2011, 20:12
ça ne sera pas plus simple, voir pire, pour les truc m$ y a l'exension COM, il faut que tu pense que php n'est pas forcément orienté vers des choses peu ouverte (cas de m$). Il y a des extensions, mais ce n'est pas la panacée
suivant ce que tu veux faire tu peux t'orienter vers dompdf qui est assez simple d'utilisation au finale, par contre après test c'est a oublier si tu a une "grosse" page, le truc met trop de temps à générer le PDF et tu tombe dans le delais max (30s) par défaut de php.
Par exemple j'ai fait ceci (bon pour tester, c'est un peu bourrin mais ça reste du test)
<?php
ob_start();
// la tous le bazar qui génère la page final, c'est pas envoyer au navigateur mais garder en mémoire grace au ob_start.
if (isset($_GET['pdf'])){
//on génére le pdf
// récupération du contenu
$html = ob_get_contents();
ob_end_clean();
//on inclus le fichier de base
require 'dompdf/dompdf_config.inc.php';
// on créer une instance de la classe
$dompdf = new DOMPDF();
// je lui donne a manger mon html
$dompdf -> load_html($html);
// je lui dit que je veux un format A4 (dans le second paramètre tu peut choisir
$dompdf -> set_paper('a4');
// la on lui demande de préparer la chose, donc entre autre parcourt du html pour trouver les css et tout le bouzzin
$dompdf -> render();
// la on lui envoi au navigateur c'est pour télécharger
$dompdf ->stream('/'.$titre.'.pdf',array('Attachement'=>true));
// c'est fin 6 lignes de code c'est pas compliqué ;)
}
else {
//on affiche le contenu du buffeur
ob_get_flush();
}
?>
Pourquoi le if, la c'est parce que j'ai choisis de simplement ajouter ?pdf dans l'url pour déclencher la génération et le téléchargement du PDF, donc si ce n'est pas le cas, on affiche normalement.
je t'invite a jeter un oeil sur la doc de la fonction
obstart (et les autres ob_* utilisées) afinde comprendre ce que j'ai fait.
sache que ce n'est pas une bonne pratique, elle net en évidence une mauvaise conception du code pour cette utilisation
Tu n'a pas besoin de savoir comment fonctionne la classe domPDF, (j'ai pas trop cherché). Le ficher que tu inclus est prévus pour gérer automatiquement le système d'inclusion des classes dont domPDF à besoin (système d'autoload grâce à "l’extension" SPL).
@+
Il en faut peu pour être heureux ......