Sub_Mat
Messages postés79Date d'inscriptionvendredi 27 mai 2005StatutMembreDernière intervention17 octobre 2010
-
18 févr. 2010 à 12:33
Sub_Mat
Messages postés79Date d'inscriptionvendredi 27 mai 2005StatutMembreDernière intervention17 octobre 2010
-
19 févr. 2010 à 19:17
Bonjour à tous,
Voici mon problème : Je récupère de ma base de donnée une donnée commentaire.
Dans ce commentaire, il y a des images qui sont placer entre des balises . Jusqu'ici tout va bien, sauf que voilà l'idée est d'afficher ces images dans un fichier pdf, grâce à la librairie "fpdf.php" disponible ici : http://www.fpdf.org/
- Pour afficher une image avec "fpdf.php" on utilise la fonction :
$this->Image()
Donc voici le code que sa me donne :
// Je récupère mon commentaire de ma base de donnée
$commentaire = $donnees['commentaire'];
// je remplace donc les balises par la fonction
// $this->Image() avec $1 qui est égale au lien vers l'image.
$commentaire = preg_replace("#\[img\](.*?)\/img\#", $this->Image
('$1'), $comment);
Et voilà une erreur s'affiche :
FPDF error: Image file has no extension and no type was specified: $1
Donc on pourrait croire que mon image no pas d'extension, mais voilà si j'enlève ma fonction $this->Image() et que je laisse simplement '$1', je n'ai plus de problème et encore mieux je peux voir que mon fichier à une extension. Voici donc mon deuxième code au complet :
// Je récupère mon commentaire de ma base de donnée
$commentaire = $donnees['commentaire'];
// je remplace donc les balises par $1
// qui est égale au lien vers l'image.
$commentaire = preg_replace("#\[img\](.*?)\/img\#", '$1', $comment);
seblechinois
Messages postés72Date d'inscriptionmercredi 27 décembre 2000StatutMembreDernière intervention16 mai 20161 19 févr. 2010 à 09:12
Bonjour,
Il y a surement mieux, mais l'idée est là :
//Commentaire extrait de la base
$commentaire="toto et tutu";
//Découpage du commentaire au niveau des balises
if( preg_match("/\[\/img\]/", $value)){
//Découpage du texte au niveau de la balise /img
$tab2=preg_split("/\[\/img\]/",$value);
//Ajout de l'image (texte avant la balise)
this->Image($tab2[0]);
//Ajout du texte après la balise avec cell
this->Cell($tab2[1]);
}else{
//Ajout du text s'il n'y a pas de balise
this->Cell($value);
}
}
ce qui donne :
- toto
Ajout avec cell()
- toto.jpg/img et tutu
Ajout de l'image: toto.jpg
Ajout avec Cell: et tutu
J'espère que ça va pouvoir vous aider!
Avez-vous essayer de mettre le chemin relatif au lieu de l'URL?
seblechinois
Messages postés72Date d'inscriptionmercredi 27 décembre 2000StatutMembreDernière intervention16 mai 20161 18 févr. 2010 à 17:22
Bonjour,
Une fois que tu as "http://www.monsite.com/images/palmier.png" dans $commentaire
Si tu utilises la fonction image comme ceci :
$this->Image('<?php echo $commentaire; ?>');
/code Ca donne quoi?
seblechinois
Messages postés72Date d'inscriptionmercredi 27 décembre 2000StatutMembreDernière intervention16 mai 20161 18 févr. 2010 à 18:08
Re,
Je ne comprend pas bien, la fonction image() attend en argument un "string" qui contient le chemin ou l'URL de l'image?
Donc si la variable $commentaire contient l'URL de l'image, ça devrait marcher (en faisant attention au "'")?
Ce qui me gêne dans cette ligne, c'est d'insérer $this-> Image('$1') dans la fonction preg_replace().
Peut-être faudrait-il découper le commentaire au niveau des balises les ajouter avec la fonction Cell() et insérer les images entre d'eux?
Image(string file [, float x [, float y [, float w [, float h [, string type [, mixed link]]]]]])
Description
Place une image. Les dimensions occupées dans la page peuvent être indiquées de plusieurs manières :
largeur et hauteur explicites (exprimées dans l'unité utilisateur)
une dimension explicite, l'autre étant calculée automatiquement afin de respecter les proportions de l'image originale
aucune dimension explicite, auquel cas l'image est dimensionnée en 72 dpi
Les formats supportés sont le JPEG, le PNG et le GIF. Le GIF nécessite l'extension GD.
Pour le JPEG, toutes les variantes sont autorisées :
niveaux de gris
couleurs vraies (24 bits)
CMYK (32 bits)
Pour le PNG, sont autorisées :
les images en niveaux de gris sur 8 bits au plus (256 teintes)
les images en couleurs indexées
les images en couleurs vraies (24 bits)
mais ne sont pas supportés :
L'interlacement
L'alpha channel
Pour le GIF : en cas de GIF animé, seule la première image est utilisée.
Si une couleur transparente est définie, elle est prise en compte.
Le format peut être spécifié explicitement ou bien déduit de l'extension du fichier.
Il est possible de mettre un lien sur l'image.
Remarque : si une image est utilisée plusieurs fois, une seule copie est intégrée au document.
Paramètres
file
Chemin ou URL de l'image.
x
Abscisse du coin supérieur gauche. Si non précisée ou égale à null, l'abscisse courante est utilisée.
y
Ordonnée du coin supérieur gauche. Si non précisée ou égale à null, l'ordonnée courante est utilisée ; de plus, un saut de page est d'abord effectué si nécessaire (en cas de saut de page automatique) ; puis, après l'appel, l'ordonnée courante est positionnée en bas de l'image.
w
Largeur de l'image dans la page. Si elle n'est pas indiquée ou vaut zéro, elle est calculée automatiquement.
h
Hauteur de l'image dans la page. Si elle n'est pas indiquée ou vaut zéro, elle est calculée automatiquement.
type
Format de l'image. Les valeurs possibles sont (indépendamment de la casse) : JPG, JPEG, PNG et GIF. S'il n'est pas précisé, le type est déduit de l'extension du fichier.
link
URL ou identifiant retourné par AddLink().
/////////////////////////////////////////////////////////////////////////
"Je ne comprend pas bien, la fonction image() attend en argument un "string" qui contient le chemin ou l'URL de l'image?" C'est plus ou moins la même chose, et les deux sont acceptés.
"Donc si la variable $commentaire contient l'URL de l'image, ça devrait marcher (en faisant attention au "'")?" Je suis d'accord avec vous, mais j'ai bo essayer y a rien à faire !
Peut-être faudrait-il découper le commentaire au niveau des balises les ajouter avec la fonction Cell() et insérer les images entre d'eux? Peut-être mais je ne vois pas trop comment prodécé, pouvez-vous m'aider ?
Sub_Mat
Messages postés79Date d'inscriptionvendredi 27 mai 2005StatutMembreDernière intervention17 octobre 2010 19 févr. 2010 à 19:17
Un grand Merci à tous les deux !
C'est bon ça fonctionne !
Dommage que "fpdf" n'accepte pas les images transparentes !
Encore merci !
Cordialement,
Sub_Mat