Générer un fichier pdf avec php

Résolu/Fermé
medwaid Messages postés 12 Date d'inscription dimanche 7 juillet 2013 Statut Membre Dernière intervention 16 novembre 2015 - 7 juil. 2013 à 00:16
heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 - 4 juin 2016 à 23:42
Salut tout le monde,
Je travaille sous PHP et là j'ai créé un formulaire afin permettre aux visiteurs de remplir les champs avec leurs coordonnées.
Maintenant je souhaite avoir, dès que l'utilisateur aura cliqué sur le bouton "Envoyer", un fichier PDF contenant toutes ses informations et envoyé à mon mail.
Je veux que le PDF soit généré automatiquement sans passer par ma base de données.

Merci d'avance pour toutes les diligences que vous voudrez bien faire pour la réussite de mon projet.
A voir également:

7 réponses

heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 137
Modifié par heliconius le 7/07/2013 à 19:51
Bonjour,

Je ne sais pas si cela résoudra ton problème mais, quant à moi, j'utilise la classe tFPDF qui est une extension de la classe FPDF. J'en remercie d'ailleurs l'auteur.

J'ai une base MySQL de données généalogiques. un clic sur un bouton exécute la recherche dans la base de données et produit à la volée un fichier PDF.
Tu peux en voir un exemple ici : http://www.fauque.fr/demogen/ (bouton Acrobat en bas de page). A la fin du PDF produit, tu trouveras l'indication de la date et l'heure de production, ce qui te permettra de vérifier que le PDF ne se trouvait pas déjà là mais a été produit au clic. La démo produit 14 pages. La base réelle (privée) en produit actuellement 157.

Tu trouveras la classe d'objet tFPDF à l'adresse suivante :
http://www.fpdf.org/fr/script/script92.php

Voilà. J'espère que cela te conviendra. Elle est facile à utiliser mais surtout, elle est efficace...

Cordialement, ...

PS: Les données sont ici extraites d'une base de données MySQL mais elles peuvent, naturellement, provenir d'ailleurs comme d'un formulaire par exemple.
Le script génère le PDF. A toi de récupérer celui-ci pour l'envoyer par mail.
10
merci pour ta lecon je trouve fpdf interessant mais comment afficher les données d'une bdd mysql vers Fpdf?
0
heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 137 > mvuka
4 juin 2016 à 23:42
Bonsoir,

Il faut lire la documentation de la classe tFPDF.
Pour écrire quelque chose dans le PDF on peut préalablement définir la police de caractères, la couleur à utiliser avant d'écrire ce quelque chose.
Exemple :
...
$pdf->SetFont("Times","I",11);
$pdf->SetTextColor(0,0,128);
$pdf->Write(5,"texte-à-écrire\n");
...


Le texte à écrire peut :

- être un texte déterminé :
$pdf->Write(5,"Bonjour\n");

- être le contenu d'une variable :
$client = "M. DUPONT Jean";
$pdf->Write(5,"$client\n");

- provenir d'une requête exécutée par une base de données :
$resultat = mysql_query($requete,$connexion);
$r = mysql_fetch_object($resultat);
$pdf->Write(5,"$r->nom $r->prenom\n");


Il semble que ton problème relève plus de SQL et de l'extraction de données à partir d'une base que de l'écriture dans la classe tFPDF. Quand on détient ce qu'il faut écrire (texte déterminé, variable ou résultat d'une requête) l'écriture dans le PDF est une pure formalité.

Bon courage...
0
medwaid Messages postés 12 Date d'inscription dimanche 7 juillet 2013 Statut Membre Dernière intervention 16 novembre 2015 12
Modifié par medwaid le 8/07/2013 à 13:00
Merci heliconius j'ai fais comme vous m'aviez expliqué et apparemment cela marche parfaitement. J'ai réussi à récupérer les données directement du formulaire et l'afficher en PDF.

Aussi je souhaite savoir comment envoyer directement le formulaire par mail.

Merci d'avance.
4
svp esq tu peut me donnez un exemple car j'ai presque le méme cas je veux créer un rapport d'accident d'après les information de mon formulaire
0
medwaid Messages postés 12 Date d'inscription dimanche 7 juillet 2013 Statut Membre Dernière intervention 16 novembre 2015 12 > selma
16 nov. 2015 à 15:51
Bonjour, si votre projet est toujours d'actualité, envoyez moi votre mail comme ça je vous donne ce que j'avais fait afin que vous puissiez avoir un aperçu.
0
medwaid Messages postés 12 Date d'inscription dimanche 7 juillet 2013 Statut Membre Dernière intervention 16 novembre 2015 12
8 juil. 2013 à 18:35
Voilà ce qui termine mon code

$file = "Souscription Assurance Automobile.pdf";
$pdf->Output($file,"I");
4
medwaid Messages postés 12 Date d'inscription dimanche 7 juillet 2013 Statut Membre Dernière intervention 16 novembre 2015 12
7 juil. 2013 à 22:19
D'accord heliconius je vais l'essayer et t'en dire plus sur mon résultat.
Encore merci
2

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 137
8 juil. 2013 à 23:42
Télécharger le fichier "php_manual_fr.chm"
à partir de l'URL https://www.php.net/download-docs.php
et voir les fonctions mail(), base64_encode() et header()

Je n'ai encore jamais essayé l'envoi d'un PDF produit à la volée mais il est probable que cela devrait (?) tourner autour de :
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="downloaded.pdf"');
readfile('original.pdf');
le tout conjointement avec mail() et sachant que le PDF en question serait produit par la dernière ligne de la classe :
$pdf->Output();

Il faudra se mettre en tête que ton PDF sera $pdf->Output() et donc pour l'encoder en vue de l'attacher à un mail tu devrais normalement avoir des choses dans le genre : base64_encode($pdf->Output()) à placer dans le mail.

Autre source d'aide : www.phpclasses.org
On peut trouver et, quand on y est inscrit, télécharger plein de classes PHP qui résolvent bien des problèmes. Manuel Lemos, a fait plein de classes touchant aux mails.

Voir aussi l'URL https://a-pellegrini.developpez.com/tutoriels/php/mail/ qui, à mon avis, te sera très utile.

Si CE sujet a trouvé sa solution, merci de le marquer comme résolu.
2
y3dev Messages postés 6 Date d'inscription mardi 5 novembre 2013 Statut Membre Dernière intervention 13 décembre 2013 3
13 déc. 2013 à 18:08
Vous pouvez aussi utiliser DomPDF c'est pas mal pour générer des PDF rapidement avec PHP. j'ai créer un tuto qu'on peut voir sur le lien suivant : http://www.y3dev.com/?p=192
2
MedWaid , pourriez vous m'expliquez comment vous avez fait SVP ? j'ai le meme problème que vous , je suis débutante en PHP et je ne sais pas comment faire.
Merci d'avance
1
medwaid Messages postés 12 Date d'inscription dimanche 7 juillet 2013 Statut Membre Dernière intervention 16 novembre 2015 12
16 nov. 2015 à 15:50
Désolé du retard de réponse mais si votre projet est toujours d'actualité, envoyez moi votre mail comme ça je vous donne ce que j'avais fait afin que vous puissiez avoir un aperçu.
0
domago Messages postés 1 Date d'inscription mercredi 2 décembre 2015 Statut Membre Dernière intervention 2 décembre 2015 > medwaid Messages postés 12 Date d'inscription dimanche 7 juillet 2013 Statut Membre Dernière intervention 16 novembre 2015
2 déc. 2015 à 15:18
Bonjour,
J'ai le même besoin que vous (générer un pdf et l'envoyer dans la foulée par mail). J'ai téléchargé la classe tfpdf mais je ne sais pas comment envoyer le fichier pdf généré par mail. Pouvez-vous me dire comment vous vous y êtes pris. Merci
0