probleme de valeur de variable - PHP - Programmation
Marsh Posté le 10-01-2005 à 15:04:25
convert2points te renvoi bien un numrique et pas une chaine de caractere ??
Marsh Posté le 10-01-2005 à 15:07:27
j'ai deja pensé au probleme en faisant ça :
Code :
|
mais j'ai toujours le même probleme... et pour la position "y" j'ai pas de probleme par contre... c là que je trouve que c'est incoherent !
Marsh Posté le 10-01-2005 à 15:44:24
pour info :
addJpegFromFile
void addJpegFromFile( mixed $img, mixed $x, mixed $y, [mixed $w = 0], [mixed $h = 0])
(PS : j'ai retiré le "100" à la fin.. ça change rien)
Marsh Posté le 10-01-2005 à 15:50:07
freed102 a écrit : pour info : |
autre exemple :
Code :
|
là ça marche si je mets une valeur directe à $imgpos_x et $imgpos_y
.. c bizarre !
Marsh Posté le 10-01-2005 à 16:30:33
ratibus a écrit : Salut
|
j'ai fait ça :
Code :
|
et ça me donne ça :
float(63.7755102041)
Marsh Posté le 10-01-2005 à 16:34:26
pour GET['X_logo']=10
il me retourne : float(28.3446712018)
(c'est normal... 1mm = 0.3528 points)
Marsh Posté le 10-01-2005 à 16:35:23
c incroyable ce bug !! lol ! j'y suis depuis vendredi soir !
Marsh Posté le 10-01-2005 à 17:07:25
bah j'ai deja essayé... marche pas mieux et le int ça me zappe la virgule
Marsh Posté le 10-01-2005 à 18:11:26
et intval donne quoi ?
Marsh Posté le 10-01-2005 à 18:22:37
Sielfried a écrit : et intval donne quoi ? |
Code :
|
... Marche toujours pas !
Marsh Posté le 10-01-2005 à 18:42:00
freed102 a écrit :
|
C'est insensé ce bug !!!
Code :
|
echo floatval ($img['pos_x']); <= il me retourne 28.3446712018
ça me parait pourtant super normal !!!!
si je tape ça :
$pdf->addJpegFromFile("temp/$logo.jpg",28.3446712018,floatval ($img['pos_y']),Convert2points($img['width']),Convert2points($img['height']));
ça marche parfaitement bien !!! ya quand même un truc louche !!!
Marsh Posté le 10-01-2005 à 18:44:22
isnumeric te renvoi bien true ??
Marsh Posté le 10-01-2005 à 18:49:14
voici la fonction "addJpegFromFile"dans la class cpdf :
Code :
|
et voici la fonction "addJpegImage_common"
Code :
|
(on sait jamais si ça peut aider !)
Marsh Posté le 10-01-2005 à 18:58:41
et voici mes fonctions à moi :
Code :
|
Marsh Posté le 10-01-2005 à 21:34:43
Rajoute un var_dump($x) dans addJpegFromFile et dans addJpegImage_common. Fait aussi un echo sprintf('%.3f', $x) dans cette dernière. Compare avec lorsque tu passes les valeurs en dur.
Marsh Posté le 11-01-2005 à 10:40:07
voila le resultat :
$img['pos_x'] : float(28.3446712018)
addJpegFromFile : float(28.3446712018)
addJpegImage_common : float(28.3446712018)
c quand même incroyable ce truc ! lol
et le sprintf()$x) retourne : 28.345
Marsh Posté le 11-01-2005 à 10:43:03
et si je passe la valeur numerique directement.. je vois exactement la même chose !
Marsh Posté le 11-01-2005 à 10:48:12
j'ai essayé de taper les valeurs directement par le "GET" (sans passer par ma fonction) :
$pdf->addJpegFromFile("temp/$logo.jpg",$_GET['X_logo'],$_GET['Y_logo'],Convert2points($img['width']),Convert2points($img['height']));
.. et ça marche toujours pas !
Marsh Posté le 11-01-2005 à 10:49:02
hmmm...
fais un var_dump($this->objects) à la fin de addJpegImage_common
(dans les deux cas : valeur passée par variable et en dur)
Marsh Posté le 11-01-2005 à 10:51:44
$pdf->addJpegFromFile("temp/$logo.jpg","25","15",Convert2points($img['width']),Convert2points($img['height']));
ça marche parfaitement bien comme ça !
Marsh Posté le 11-01-2005 à 10:53:03
le var_dump de $this->... retourne ça :
string(101) " 0.200 0.200 0.800 rg 0.000 0.000 240.930 155.896 re f q 273.000 0 0 78.000 0.000 155.896 cm /I1 Do Q"
.. Mais là c indechiffrable ! lol
Marsh Posté le 11-01-2005 à 10:53:59
enfin pas tant que ça :
$this->objects[$this->currentContents]['c'].="\nq";
$this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$w)." 0 0 ".sprintf('%.3f',$h)." ".sprintf('%.3f',$x)." ".sprintf('%.3f',$y)." cm";
$this->objects[$this->currentContents]['c'].="\n/".$label.' Do';
var_dump ( $this->objects[$this->currentContents]['c'].="\nQ" );
var_dump($this->objects); (tout court) retourne ça :
array(8) { [1]=> array(2) { ["t"]=> string(7) "catalog" ["info"]=> array(2) { ["outlines"]=> int(2) ["pages"]=> int(3) } } [2]=> array(2) { ["t"]=> string(8) "outlines" ["info"]=> array(1) { ["outlines"]=> array(0) { } } } [3]=> array(2) { ["t"]=> string(5) "pages" ["info"]=> array(4) { ["mediaBox"]=> array(4) { [0]=> int(0) [1]=> int(0) [2]=> float(240.98) [3]=> float(155.92) } ["procset"]=> int(4) ["pages"]=> array(1) { [0]=> int(6) } ["xObjects"]=> array(1) { [0]=> array(2) { ["objNum"]=> int(8) ["label"]=> string(2) "I1" } } } } [4]=> array(2) { ["t"]=> string(7) "procset" ["info"]=> array(3) { ["PDF"]=> int(1) ["Text"]=> int(1) ["ImageC"]=> int(1) } } [5]=> array(2) { ["t"]=> string(4) "info" ["info"]=> array(2) { ["Creator"]=> string(45) "R and OS php pdf writer, http://www.ros.co.nz" ["CreationDate"]=> string(10) "D:20050111" } } [6]=> array(2) { ["t"]=> string(4) "page" ["info"]=> array(3) { ["parent"]=> int(3) ["pageNum"]=> int(1) ["contents"]=> array(1) { [0]=> int(7) } } } [7]=> array(4) { ["t"]=> string(8) "contents" ["c"]=> string(101) " 0.200 0.200 0.800 rg 0.000 0.000 240.930 155.896 re f q 273.000 0 0 78.000 0.000 155.896 cm /I1 Do Q" ["info"]=> array(0) { } ["onPage"]=> int(6) } [8]=> array(3) { ["t"]=> string(5) "image" ["data"]=> string(23567)
Marsh Posté le 11-01-2005 à 11:07:10
je comprends pas.. la variable passe pourtant tres bien :
string(101) " 0.200 0.200 0.800 rg 0.000 0.000 240.930 155.896 re f q 113.379 0 0 32.394 28.345 15.000 cm /I1 Do Q"
mais ça ne s'affiche pas comme il faut !
Marsh Posté le 11-01-2005 à 12:14:54
j'ai le même probleme avec
$pdf->addTextWrap(15,Convert2points($Y_nom),Convert2points(30),$sizenom,"<b>".$prenom." ".$nom."</b>",$_GET['pos_nom'],Convert2points($_GET['angle_nom']));
Marsh Posté le 11-01-2005 à 12:40:31
je recommence tout depuis le debut...
j'ai laissé qu'une seule commande.. desactivé toutes mes fonctions
j'ai fait ça :
$logo_x="30";
$logo_y="25";
$logo_w=$_GET['L_logo'];
$logo_h=$_GET['H_logo'];
$pdf->addJpegFromFile("temp/$logo.jpg",$logo_x,$logo_y,$logo_w,$logo_h);
$pdf->ezStream();
... ça marche parfaitement
.... je fais ça :
$logo_x=$_GET['X_logo'];
$logo_y=$_GET['Y_logo'];
$logo_w=$_GET['L_logo'];
$logo_h=$_GET['H_logo'];
$pdf->addJpegFromFile("temp/$logo.jpg",$logo_x,$logo_y,$logo_w,$logo_h);
$pdf->ezStream();
... ça marche plus !
... l'image reste en bas à gauche (au point 0;0)
http://www.clonecopy.net/php/cartesvisite/
(bloc "logo" )
Marsh Posté le 11-01-2005 à 12:44:37
NOUVELLE INFO !!!
... ça marche parfaitement bien sur firefox !!!!!!
... d'ou vient le bug ????
et ça marche tres bien sur IE sur un PC win98 !!!
ça marche tres bien sur IE sur win2K...
ça marche tres bien sur Safari sur mac...
sur IE mac je peux pas savoir car les javascripts ne fonctionnent pas ! je dois refaire une page spéciale pour IE mac
alors la conclusion est que ça bug sur IE winXP ou peut etre à cause du plug-in d'Acrobat 6.0 (qu'on a sur tous les pc XP)qui gere peut etre pas bien ça sur IE (je vois pas pourquoi mais bon...)
que faire dans ces cas là ?
Marsh Posté le 11-01-2005 à 14:23:24
et voila ! tout es corrigé !!! il suffit d'ecrire le PDF avant de le lire.. et pas le faire interpreter par le browser ! et ça marche parfaitement !!!!
Merci à tous en tous cas !
Marsh Posté le 10-01-2005 à 15:01:07
Voila j'ai deux cas :
1er cas
le "echo $pos_x;" me retourne une valeur calculée par la fonction Convert2points(), cette valeur me parait tout à fait cohérente.
... la valeur du $pos_x est dans les arguments de ma fonction "addJpegFromFile" qui correspond à la position de l'image en abcisses "x"
... le probleme c'est que quelquesoit la valeur de $pos_x... l'image apparait au centre de la page.
Deuxieme cas :
$pos_x est desactivé...
j'ai remplacé son argument dans la fonction "addJpegFromFile" par une valeur numérique "15"...
dans ce cas l'image est placée à 15 points du bord gauche de la page... comme je l'ai indiqué dans les arguments...
en résumé.. je comprends pas pourquoi une valeur numérique passe sans probleme... et qu'une variable ne passe pas
où est le bug ?