Insérer données PHP dans un PDF - PHP - Programmation
Marsh Posté le 10-02-2009 à 17:11:58
bonjour, tu peux générer un pdf à la volée avec la lib fpdf.
Marsh Posté le 10-02-2009 à 17:16:45
J'ai vu l'existance de cette librairie mais il est impossible de créer un pdf comme je l'ai expliqué pour ensuite lui injecter des données aux endroits voulus?
Marsh Posté le 10-02-2009 à 17:18:15
apparemment non, tu dois reconstruire ton pdf à chaque fois...
Marsh Posté le 10-02-2009 à 17:23:01
ok
Et la j'ai commencé à tester la librairie fpdf mais un message d'erreur survient :
FPDF error: Some data has already been output, can't send PDF file
Ca te dit quelque chose ?
J'ai regardé sur plusieurs site et toutes les propositions indiqué ne fonctionnent pas.
Voici mon code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
Tu vois le problème ?
Marsh Posté le 10-02-2009 à 17:25:32
oui, il pète aux yeux.
Ca n'a aucun sens d'envoyer des données au format PDF au beau milieu d'un fichier texte contenant du code HTML.
Marsh Posté le 10-02-2009 à 17:28:45
ha ok.
Donc il faut que j'enlève le code html ?
Alors j'ai enlevé le code html mais maintenant il ne m'affiche pas le pdf mais un texte incompréhensible !
merci pour ton aide qui m'est précieuse!
Voici ce qu'il m'affiche :
%PDF-1.3 3 0 obj <> endobj 4 0 obj <> stream xœ3Rðâ2Ð35W(çr QÐw3T04Ó30PISp êZ*˜[š€…¤(hx¤æää+„çå¤((j*„d&ãw endstream endobj 1 0 obj <> endobj 5 0 obj <> endobj 2 0 obj << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F1 5 0 R >> /XObject << >> >> endobj 6 0 obj << /Producer (FPDF 1.53) /CreationDate (D:20090210172655) >> endobj 7 0 obj << /Type /Catalog /Pages 1 0 R /OpenAction [3 0 R /FitH null] /PageLayout /OneColumn >> endobj xref 0 8 0000000000 65535 f 0000000229 00000 n 0000000417 00000 n 0000000009 00000 n 0000000087 00000 n 0000000316 00000 n 0000000521 00000 n 0000000597 00000 n trailer << /Size 8 /Root 7 0 R /Info 6 0 R >> startxref 700 %%EOF
Ca te parle ?
Marsh Posté le 10-02-2009 à 17:34:26
C'est le problème classique du header.
Cette question fait d'ailleurs l'objet du 9eme point du FAQ squi se trouve sur le site de fpdf, http://www.fpdf.org/
Citation : Il ne faut rien envoyer d'autre au navigateur que le PDF lui-même : pas d'HTML, pas d'espace, pas de retour-chariot. Un cas fréquent est d'avoir des lignes vides à la fin d'un fichier inclus. |
Donc, il faut enelever doctype, html, head, etc.
Le principe est qu'une page qui contient un document PDF ne contient que du PDF (généré par le fpdf et PHP) et un header special (généré par fpdf), mais pas de HTML ordinaire. On ne peut pas faire un panachage avec une partie HTML ordinaire et une partie PDF, sauf si on utilise l'astuce d'avoir des frames comme sur le site de la Bibliothèque Nationale.
Marsh Posté le 10-02-2009 à 17:34:56
là encore, réfléchis... Il faut que tu indiques au navigateur (client) que tu lui envoies du PDF et pas du texte simple. Pour çà tu lui renseignes le type mime à l'aide de la fonction header (appelle là en haut du script)
Code :
|
Marsh Posté le 10-02-2009 à 17:36:55
J'ai été grillé, trop lent à répondre. Je vais esayer d'aller plus vite pour répondre à la question "Ca te parle ?". La réponse est "oui, c'est un fichier PDF". Pour plus d'infos, voir le tutoriel sur le site http://www.fpdf.org/.
Edit : Encore grillé, C'est pas grave.
Ce n'est pas obligatoirement un problème de header. Lire le point 2 du FAQ sur le site qui dit qu'il faut fermer IE et le réouvir.
Marsh Posté le 10-02-2009 à 17:41:02
Désolé pour mon ignorance mais ça ne fonctionne pas.
Le header je l'ai mis dans les balises php après l'appel du fichier "fpdf.php" et rien ne change, il me sort toujours les lignes que j'ai mentionnées plus haut!
Sur les tutoriel du site, ils indiquent le même code que j'ai présenté et cela ne fonctionne pas... je suis désemparé!
Marsh Posté le 10-02-2009 à 17:45:06
Le voici :
Code :
|
Merci beaucoup pour votre patience et pour vos explications qui m'éclaircisse
Marsh Posté le 10-02-2009 à 17:50:15
Essaye çà (juste pour tester) :
Code :
|
Que se passe-t-il ?
Marsh Posté le 10-02-2009 à 17:52:58
Ca ne change rien, j'ai toujours les lignes incompréhensibles qui s'affiche sur mon navigateur!
Marsh Posté le 10-02-2009 à 17:57:35
C'est bon!
j'ai ouvert une autre fenetre et est renseigne le chemin vers le fichier qui génère le pdf et ca me l'a affiché!
C'est parce que je rafraichissais la page alors qu'il faut en fait la fermer et en réouvrir une autre!
Enfin.
mais du coup est-il possible d'ouvrir le fichier pdf dans une nouvelle fenetre ?
Merci pour votre aide.
Marsh Posté le 10-02-2009 à 22:08:53
j'arrive après la bataille mais il est possible en php de modifier un pdf existant avec FPDI qui est une extention de FPDF
Marsh Posté le 10-02-2009 à 16:48:16
Bonjour à tous,
Je souhaite mettre à jour le contenu d'un fichier pdf avec des données récupérées dans un formulaire html.
Comment puis-je faire ?
Je dois utiliser php pour la récupération de données et donc mon but serait d'injecter ensuite ces données dans un fichier pdf gabari.
Peut-on mettre des variables dans le pdf pour les alimenter ensuite grâce à php.
merci pour vos réponses.