Générer un fichier pdf avec php [Résolu/Fermé]

Signaler
Messages postés
12
Date d'inscription
dimanche 7 juillet 2013
Statut
Membre
Dernière intervention
16 novembre 2015
-
heliconius
Messages postés
457
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
10 mars 2020
-
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.

7 réponses

Messages postés
457
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
10 mars 2020
92
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

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 71105 internautes nous ont dit merci ce mois-ci

merci pour ta lecon je trouve fpdf interessant mais comment afficher les données d'une bdd mysql vers Fpdf?
heliconius
Messages postés
457
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
10 mars 2020
92 > mvuka
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...
Messages postés
12
Date d'inscription
dimanche 7 juillet 2013
Statut
Membre
Dernière intervention
16 novembre 2015
11
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.
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
medwaid
Messages postés
12
Date d'inscription
dimanche 7 juillet 2013
Statut
Membre
Dernière intervention
16 novembre 2015
11 > selma
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.
Messages postés
12
Date d'inscription
dimanche 7 juillet 2013
Statut
Membre
Dernière intervention
16 novembre 2015
11
Voilà ce qui termine mon code

$file = "Souscription Assurance Automobile.pdf";
$pdf->Output($file,"I");
Messages postés
12
Date d'inscription
dimanche 7 juillet 2013
Statut
Membre
Dernière intervention
16 novembre 2015
11
D'accord heliconius je vais l'essayer et t'en dire plus sur mon résultat.
Encore merci
Messages postés
457
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
10 mars 2020
92
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.
Messages postés
6
Date d'inscription
mardi 5 novembre 2013
Statut
Membre
Dernière intervention
13 décembre 2013
3
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
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
medwaid
Messages postés
12
Date d'inscription
dimanche 7 juillet 2013
Statut
Membre
Dernière intervention
16 novembre 2015
11
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.
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

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