Forum Clubic

[PHP] inclure une image dynamique dans FPDF

Bonsoir,

je voudrais savoir si il est possible d’inclure une image dynamique générée avec la librairie JPGraph dans un document .pdf généré lui meme avec FPDF

je lutte un peu…

pour inclure un logo (donc image pas dynamique), je fais avec fpdf:

$pdf->Image('logo.png',10,8,33);

ce marche nickel

mais mon image dynamique a comme nom: graph_competences2_offre.php?id=1
donc je fais:

$pdf->Image('graph_competences2_offre.php?id=1',10,8,33);

et la ca marche pas…

je vois pas comment faire et je sais pas si c’est meme possible…

si vous avez des suggestions :whistle:

:wink:

Je dirais que c’est possible, mais là tu t’y prends mal.
Tu donne à la méthode Image() une URL de ton site (“graph_competences2_offre.php?id=1”) alors que cette méthode est appelée du côté serveur. Pour elle, “graph_competences2_offre.php?id=1” est un nom de fichier (ce qu’elle ne doit d’ailleurs pas aimer vu qu’il y a un “?”), alors que je présume que “graph_competences2_offre.php” est un script qui récupère des images (selon leur ID) dans une base de données ou sur le disque et qui les retourne au navigateur avec des headers adéquats pour dire que c’est une image.
Sauf que quand la méthode analyse la chaîne “graph_competences2_offre.php?id=1”, elle ne va pas appeler ton script “graph_competences2_offre.php” en réglant $_GET[‘id’] à “1”, pourquoi ? Tout simplement parce que “l’appel” de script PHP se fait par le navigateur et non par le moteur PHP (ça ne marche pas comme ça c’est tout).

Solution 1 (moche) :
Tu complète l’URL relative “graph_competences2_offre.php?id=1” pour quelle soit absolue (http://www.site.fr/../graph_competences2_offre.php?id=1)

Solution 2 :
Tu te fais une fonction recupImgById($id) qui contient le code que tu as dans “graph_competences2_offre.php” (en adaptant un peu)
et tu appeles cette fonction dans l’appel de la méthode Image().

je suis pas sur, il faudrait que je relise le code de FPDF, mais la méthode Image() ne devrait fonctionner qu’avec des “vrais” fichiers images …
donc il faudrait que l’image que tu génères dynamiquement soit enregistrés temporairement sur le disque avec inclusion dans FPDF :oui:

Merci pour vos réponses :super:

j’ai testé avec une adresse absolue mais la méthode Image() fonctionne apparemment qu’avec des “vrais” fichiers images, ca ne marche pas…

il me reste plus qu’à trouver une autre solution…
en l’enregistrant temporairement sur le disque d’apres toi kisscool…

je vais reflechir comment je peux faire ca…

Presque 4 mois + tard, je n’ai pas trouvé de solution à mon pb…

j’ai été obligé d’enregistrer les images dans un repertoire temporaire…
c’est pas beau, c’est pas dynamique…

il suffit de faire de la réécriture d’url
ex : transformer image_1.png en image.php?id=1

ça marche chez moi

La ré-écriture d’URL est faite par le serveur Web : il faut donc qu’il utilise des adresses absolues.