liaison image entre php et pdf

ViPHP
ViPHP | 5462 Messages

07 sept. 2010, 22:08

non mais pareil, depuis le début tu fais les mêmes erreurs, image et cell c'est pas les même paramètre, je vois pas pourquoi tu réécris la même chose...

Eléphanteau du PHP | 30 Messages

08 sept. 2010, 20:40

je veux bien mais dans ce cas là, je comprends plus rien :(

j'ai fais un test pour voir si mon image est bien dans le dossier.
J'ai mis ce code ->
$pdf->Image('../NOM_PRENOM.jpg',51,43,'L');
ce qui donne cette erreur ->
Warning: getimagesize(../NOM_PRENOM.jpg) [function.getimagesize]: failed to open stream: No such file or directory in /home/******/www/trombi/pdf/fpdf.php on line 1498
FPDF error: Missing or incorrect image file: ../NOM_PRENOM.jpg
(donc normal car je n'ai pas mis le dossier)

Maintenant, pour voir si j'ai mis un bon chemin, j'ai mis l'image en direct avec le dossier qui la contient ->
$pdf->Image('../photo/ABENZOAR_FOULE.jpg',51,43,'L');
le pdf s'ouvre et j'ai ma photo en plein milieu.

Ca veux dire que le chemin est bon, non?

Et si maintenant, je mets ce code ->
$pdf->Image('../photo/'.$data['photo'],51,43,'L');
je me retrouve avec cette erreur :( ->
FPDF error: Unsupported image type: /photo/
il me dis que la photo n'est pas supportée même en ajoutant l'extension 'jpg' !

help!! j'y comprends plus rien :(

j'ai essayé ce code ->
$pdf->Image(realpath($data['photo']),0,1,'L');
et ca me retourne cette erreur ->
FPDF error: Image file has no extension and no type was specified: /home/*****/www/trombi/pdf
Donc je vois bien que le chemin n'est pas le bon mais comment le changer en /home/*****/www/trombi/photo ?

si vous avez la réponse, arrêter de me faire languir please :P

- Je mets un Cell alors qu'il faut mettre Image ok j'ai compris.
- je mets realpath pour que le chemin soit trouvé ok c'est bon

maintenant, pourquoi il trouve le chemin (coté serveur) et la photo (coté sql) en "Cell" et pas en "Image"?
et quand je mets '../photo/nom_prenom.jpg' , pourquoi il m'affiche l'image alors que quand je mets '../photo/'.$data['photo'], il ne l'a trouve pas?

j'ai beau regarder mon code, je ne vois pas ou est l'erreur :evil: :evil:

Eléphanteau du PHP | 30 Messages

09 sept. 2010, 11:44

Bon je ne sais pas si ça peut aider mais je trouve que c'est assez bizarre :?

Mon code est:
$pdf->Cell(75,5,$data['nom'].' '.$data['prenom'],0,0,'P');
$pdf->Image(realpath('../photo/'.$data['photo']),'jpg',0,1,'L');
j'ai l'impression que ca cherche uniquement dans ma base SQL :shock: car pour la ligne 1, le nom $data['nom'] et le prénom $data['prenom'] s'affichent correctement.

Maintenant, quand je fais ->
$pdf->Cell(realpath('../photo/'.$data['photo']),'jpg',0,1,'L');
il me mets le nom donc c'est qu'il trouve bien le nom de la photo qui est dans la base SQL

Comment puis-je faire pour lui dire d'afficher la photo qui se trouve dans le dossier "./photo/" en prenant en compte le nom qui se trouve dans la base SQL?

Style si $data['photo'] trouve l'image correspondant (même nom) dans le dossier "photo" se trouvant sur le serveur, il l'affiche et s'il ne la trouve pas, ben il affiche rien :)

Merci pour votre aide

Eléphanteau du PHP | 30 Messages

09 sept. 2010, 18:58

Je ne sais pas si je suis dans la bonne voix mais j'arrive à afficher ma photo avec ce code ->
$pdf->Image(20,5,print("<img src=\"../photo/$data[photo]\" height=\"140px\" >"),0,1,'L');
3 hic :(

1/ c'est que seul le premier nom (niveau base SQL) est affiché donc je n'ai qu'une photo.
2/ la photo ne s'affiche pas dans une page pdf (pdf non généré)
3/ j'ai toujours cette erreur après la photo. ->
FPDF error: Unsupported image type: 1


Avez vous une idée pour que le pdf se génère et m'affiche les photos avec leur nom respectif?

Merci

ViPHP
ViPHP | 5462 Messages

09 sept. 2010, 19:07

sérieusement ca c'est n'importe quoi :
Code php
$pdf->Image(20,5,print("<img src=\"../photo/$data[photo]\" height=\"140px\" >"),0,1,'L');
j'ai du mal a comprendre ta façon de voir les choses, qu'est ce qui est marqué dans la doc de fpdf ?

Eléphanteau du PHP | 30 Messages

09 sept. 2010, 21:02

:lol: ouais je sais mais je fais comme je peux :)

tu as déjà demandé à un dentiste de changer un allumeur sur un véhicule? il essaye jusqu'à demander un coup de main au garagiste...

ben pour moi, c'est pareil ;)

dans la doc fpdf, il n'y a pas d'exemple pour afficher une variable
Image
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.
ouais donc si je fais la même chose, ça donne ça ->
Image(string file [, float x [, float y [, float w [, float h [, string type [, mixed link]]]]]])
=
$pdf->Image('../photo/'.$data['photo'],100,50,41,53,'jpg');
Si non, ça devrait donner quoi?

comment afficher une variable dans mon pdf?

ViPHP
ViPHP | 5462 Messages

09 sept. 2010, 21:07

pour affiché une variable tu la deja fais c'est avec cell, le realpath te donnera l'emplacement exacte de l'image ? donc est ce que l'image existe ?

EDIT : je te conseil de faire tes tests en dehors de ton fichier pdf

Eléphanteau du PHP | 30 Messages

09 sept. 2010, 21:40

oui l'image existe car quand je fais
$pdf->Image('../photo/ABENZOAR_FOULE.jpg',100,50,41,53,'jpg');
j'ai l'image qui s'affiche.

quand je lance mon fichier realpath.php (qui est la racine) et qui contient ça->
<? echo realpath('./photo/'.$data['photo']); ?>
j'ai ça en retour ->
/home/fordprob/www/trombi/photo
donc c'est bien le dossier qui contient mes photos :)

du coup, je mets ce code ->
$pdf->Image('./photo/'.$data['photo'],100,50,41,53,'jpg');
mais je me retrouve toujours avec cette erreur ->
Warning: getimagesize(./photo/AGEORGES_FABIEN.jpg) [function.getimagesize]: failed to open stream: No such file or directory in /home/fordprob/www/trombi/pdf/fpdf.php on line 1498
FPDF error: Missing or incorrect image file: ./photo/AGEORGES_FABIEN.jpg
et hop, ça me ramène toujours à la même ligne ->
$a=GetImageSize($file);
et le code correspondant est ->
function _parsejpg($file)
{
	//Extract info from a JPEG file
	$a=GetImageSize($file);
	if(!$a)
		$this->Error('Missing or incorrect image file: '.$file);
	if($a[2]!=2)
		$this->Error('Not a JPEG file: '.$file);
	if(!isset($a['channels']) || $a['channels']==3)
		$colspace='DeviceRGB';
	elseif($a['channels']==4)
		$colspace='DeviceCMYK';
	else
		$colspace='DeviceGray';
	$bpc=isset($a['bits']) ? $a['bits'] : 8;
	//Read whole file
	$f=fopen($file,'rb');
	$data='';
	while(!feof($f))
		$data.=fread($f,4096);
	fclose($f);
	return array('w'=>$a[0],'h'=>$a[1],'cs'=>$colspace,'bpc'=>$bpc,'f'=>'DCTDecode','data'=>$data);
}
c'est a ne plus rien y comprendre

ViPHP
ViPHP | 5462 Messages

09 sept. 2010, 21:47

ca :
../photo/ABENZOAR_FOULE.jpg
et ca :
./photo/AGEORGES_FABIEN.jpg


ca pointe pas au même endroit

Eléphanteau du PHP | 30 Messages

09 sept. 2010, 22:09

euh oui faute de frappe pour le "." :oops:

dans mon realpath, ça ->
<? echo realpath('../photo/ABENZOAR_FOULE.jpg'); ?>
donne ça ->
/home/fordprob/www/photo/ABENZOAR_FOULE.jpg
dans mon script d'import de photo, ça donne ça -> $dossier_destination="../photo/";

comment puis-je modifier le chemin ?
Modifié en dernier par sagittaire57 le 09 sept. 2010, 22:20, modifié 1 fois.

ViPHP
ViPHP | 3607 Messages

09 sept. 2010, 22:19

Stooooooooooooooooooooop!
On reprend calmement...

Que donne ce code:
$tests= realpath('../photo/'.$data['photo']).PHP_EOL.realpath('./photo/'.$data['photo']);
$pdf->Cell(200,200,$tests,0,0,'P');
Qu'est-ce qui est affiché sur ton pdf?
Modifié en dernier par jojolapine le 09 sept. 2010, 22:19, modifié 1 fois.

ViPHP
ViPHP | 5462 Messages

09 sept. 2010, 22:19

$data['photo'] est vide...

Eléphanteau du PHP | 30 Messages

09 sept. 2010, 22:24

ca me donne ça ->
/home/fordprob/www/trombi/photo/AGEORGES_FABIEN.jpg
/home/fordprob/www/trombi/photo/AFFAINIE_WILFRID.jpg
/home/fordprob/www/trombi/photo/ALABERNIA_FABIEN.jpg
/home/fordprob/www/trombi/photo
/home/fordprob/www/trombi/photo/ABENZOAR_FOULE.jpg
là ou il n'y a pas de nom, c'est que la photo n'est pas dedans

ViPHP
ViPHP | 5462 Messages

09 sept. 2010, 22:25

ca me donne ça ->
/home/fordprob/www/trombi/photo/AGEORGES_FABIEN.jpg
/home/fordprob/www/trombi/photo/AFFAINIE_WILFRID.jpg
/home/fordprob/www/trombi/photo/ALABERNIA_FABIEN.jpg
/home/fordprob/www/trombi/photo
/home/fordprob/www/trombi/photo/ABENZOAR_FOULE.jpg
là ou il n'y a pas de nom, c'est que la photo n'est pas dedans
donc c'est normale :wink:

Eléphanteau du PHP | 30 Messages

09 sept. 2010, 22:27

AAHHHHHHHHHHH....ouch ça fait du bien :mrgreen: c'est ma femme qui rigole moins :lol:

normale dans le bon sens ou dans le mauvais?