Page 1 sur 1

attestation de présence

Posté : 12 mai 2011, 16:03
par cobra2930
Bonjour tout le monde,
voila j'ai créé une gestion d'absences d'élèves mais il me faudrait que je récupère des infos de ma base de donnée pour faire un état de l'élève sur un document : il faudrait que sur une feuille style pdf je puisse récupérer le nom de l'élève, son entreprise, et surtout le nombre d'heure effectué du mois et les jours d'absences de l'élève, j'ai déjà créer les requête qui marche sur le site mais je ne sais pas du tout comment procéder pour le mettre dans un pdf en cliquant sur un bouton.
Merci d'avance.

Re: attestation de présence

Posté : 12 mai 2011, 17:40
par moogli
salut,

il existe de lib PDF (pas forcément existante sur ton serveur a vérifier).

j'ai vu cette semaine dans phpsolution la lib DOMPDF qui pourrait t'aller.
sinon existe par exemple HTML2PDF ou l'extendion PDFlib (si installée)

il en existe surement d'autre que je ne connais pas ou que j'ai oublié ;)

@+

Re: attestation de présence

Posté : 13 mai 2011, 09:26
par cobra2930
et on peut pas le faire dans un .doc ou autre ou ça serait moins compliqué?car j'ai regarder ce que tu m'as dit et ça a l'air super complexe à coder.

Re: attestation de présence

Posté : 13 mai 2011, 20:12
par moogli
ç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).

@+

Re: attestation de présence

Posté : 18 mai 2011, 08:49
par cobra2930
merci pour ta réponse!!il y en a qui me dise que je dois utiliser la librairie fpdf, laquelle serait la mieux adapté?un collègue m'as dit de le faire en ajax, il n'y aurait pas des moyen plus simple?genre javascript ou directement avec l'impression?

Re: attestation de présence

Posté : 18 mai 2011, 18:40
par moogli
ben tu voulais du PDF ^^

tu peux aussi utiliser fpdf si tu le souhaite.

sinon si c'est simplement pour l'impréssion tu peux très bien mettre un bouton avec un print dessus, et derrière utiliser une feuille de style alternative pour le medi print et je te renvoie vers cette article dédié http://www.alsacreations.com/tuto/lire/ ... ssion.html ;)

@+

Re: attestation de présence

Posté : 18 mai 2011, 21:56
par cobra2930
ben tu voulais du PDF ^^

tu peux aussi utiliser fpdf si tu le souhaite.

sinon si c'est simplement pour l'impréssion tu peux très bien mettre un bouton avec un print dessus, et derrière utiliser une feuille de style alternative pour le medi print et je te renvoie vers cette article dédié http://www.alsacreations.com/tuto/lire/ ... ssion.html ;)

@+
je pense effectivement que sa serait plus simple et en plus c'est justement que pour l'impression.

Re: attestation de présence

Posté : 30 mai 2011, 15:30
par cobra2930
Bonjour, le sujet est résolu :

php-avance/gestion-absences-presences-p ... 6-120.html

Merci a tous pour vos réponse!