[RESOLU] [FPDF]Projet, géneration d'un pdf avec récuperation d'informations par un formulaire HTML

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] [FPDF]Projet, géneration d'un pdf avec récuperation d'informations par un formulaire HTML

Re: [FPDF]Projet, géneration d'un pdf avec récuperation d'informations par un formulaire HTML

par LordNetronos » 23 oct. 2016, 14:53

J'ai réussi a régler le problème, en fait je modifiais la valeur de $h une fois que le cadre avais déjà été imprimé donc c’était purement inutile.
Alors je l'ai mis avant l'output et tout fonctionne parfaitement. Merci a toi pour ton aide

Re: [FPDF]Projet, géneration d'un pdf avec récuperation d'informations par un formulaire HTML

par Bernard_2102 » 23 oct. 2016, 11:49

le code est bon tu dois avoir un échappement ou une erreur ailleurs.
Ps abondance de parenthèse ne nuit pas mais inutile.

Re: [FPDF]Projet, géneration d'un pdf avec récuperation d'informations par un formulaire HTML

par LordNetronos » 23 oct. 2016, 05:55

Bien sur :

Code : Tout sélectionner

$h = (ceil((strlen($_POST['ADRESSE'])) / 68 * 2.9));

Re: [FPDF]Projet, géneration d'un pdf avec récuperation d'informations par un formulaire HTML

par Bernard_2102 » 23 oct. 2016, 03:12

$h est bien déclaré avant la condition?

Re: [FPDF]Projet, géneration d'un pdf avec récuperation d'informations par un formulaire HTML

par LordNetronos » 23 oct. 2016, 01:32

Oui mais ça ne fonctionne pas pour une raison que je ne comprend pas

Re: [FPDF]Projet, géneration d'un pdf avec récuperation d'informations par un formulaire HTML

par Bernard_2102 » 23 oct. 2016, 00:50

si j'ai bien compris il faut remplacer :
if ($_POST['NOMUSAGE'] == '') {
         
   }
   else {
      $pdf->MultiCell(0,10,utf8_decode('Nom d\'usage : '.$_POST['NOMUSAGE'].''),0);
      $h + 10;
   }
Par:
if ($_POST['NOMUSAGE'] == '') {
         
   }
   else {
      $pdf->MultiCell(0,10,utf8_decode('Nom d\'usage : '.$_POST['NOMUSAGE'].''),0);
     $h= $h + 10;
   }

Re: [FPDF]Projet, géneration d'un pdf avec récuperation d'informations par un formulaire HTML

par LordNetronos » 22 oct. 2016, 21:11

Ok je vois le bout du tunnel, tout marche impec, j'ai du juste adapter quelques petites chose mais en gros c'est bon mais certaines petite chose me chiffonne :

Code : Tout sélectionner

if ($_POST['NOMUSAGE'] == '') { } else { $pdf->MultiCell(0,10,utf8_decode('Nom d\'usage : '.$_POST['NOMUSAGE'].''),0); $h + 10; }
Ce petit bout de code me permettais d'imprimer ou non la ligne si nécessaire mais avec le rectangle dynamique que nous avons mis au point il me faut pouvoir lui rajouter 10 quand la ligne s'imprime afin que le cadre s'adapte. Mais encore une fois je me confronte a des erreurs de syntaxe et je ne sais pas quoi chercher sur google pour trouvé réponse a mes questions.

Une autre chose aussi c'est que j'aurais besoin de pouvoir set la valeur a 5 au minimum, parce que forcément quand j'ai moins de 68 caractère on part dans le négatif. je pourrais le faire avec des conditions mais je me demandais si il y avais plus simple.

EDIT : Alors j'ai résolu mon premier problème ; Les autres cellules qui sont à l'interieur de mon cadre valent 50 donc au lieu de les rajouter dans la déclaration j'ai réussi a les rajouté dans la création du rectangle :

Code : Tout sélectionner

$pdf->Rect(10,67,190,($h)+50);
Ce qui m'as permis simplement du coup :

Code : Tout sélectionner

if ($h >= 5) { $h = 5; } else { }
Ce qui marche très bien mais du coup il ne me manque plus que à trouvé pour rajouter 10 quand le champ "Nom d'usage" apparaît.

Re: [FPDF]Projet, géneration d'un pdf avec récuperation d'informations par un formulaire HTML

par Bernard_2102 » 22 oct. 2016, 20:26

pas de pb.
google est ton ami tu trouves tout en cherchant un peu.

Re: [FPDF]Projet, géneration d'un pdf avec récuperation d'informations par un formulaire HTML

par LordNetronos » 22 oct. 2016, 20:13

Je suis vraiment désolé je suis un novice dans un domaine que je connais peu, j'avance a taton, je te remercie de prendre du temps pour m'épauler.

Re: [FPDF]Projet, géneration d'un pdf avec récuperation d'informations par un formulaire HTML

par Bernard_2102 » 22 oct. 2016, 20:05

$h = ceil((strlen($_POST['ADRESSE'])) / 68 * 11) ;
La hauteur et non la largeur.

Re: [FPDF]Projet, géneration d'un pdf avec récuperation d'informations par un formulaire HTML

par LordNetronos » 22 oct. 2016, 19:04

D'accord mais comment faire pour déclarer "h" en tant que variable qui soit la résultante de la multiplication du strlen, naivement j'aurais fais comme ça :

Code : Tout sélectionner

$h = (strlen($_POST['ADRESSE']) / 68) x 11 ;
Bien sur rien n'est bon dans cette ligne mais c'est un peu comme ça que je l'imagine je divise la valeur retourné par le strlen par le nombre de caractère possible sur une ligne qui est de 68 dans mon cas puis je le multiplie par la taille de ma police qui de 11 et j'obtiens donc la largeur.

Mais je ne sais pas comment l'éxprimer en php

EDIT :

Code : Tout sélectionner

$COUNTADRESSE = ''. strlen($_POST['ADRESSE']) .'';
ça c'est correct mais quel est la syntaxe pour pouvoir multiplier le tout ?.

Re: [FPDF]Projet, géneration d'un pdf avec récuperation d'informations par un formulaire HTML

par Bernard_2102 » 22 oct. 2016, 18:47

imaginons ton texte de 200 caractères (trouvé par strlen ) tu décides de créer un cadre de 100mm de large, selon la taille de la police cela correspond à 40 caractères donc 200/40 = 5, soit h = 5x hauteur de la police, si hauteur = 5mm h=5x5=25 sachant que fpdf gère les pages en mm 210 x 297 format A4

Re: [FPDF]Projet, géneration d'un pdf avec récuperation d'informations par un formulaire HTML

par LordNetronos » 22 oct. 2016, 18:19

En faite j'ai juste besoin de pouvoir définir la valeur "h" de la fonction "Rect" de "fdpf" selon la taille des Multicellule que j'utilise. Cette fonction qui permet de compter le nombre de caractère pourrait m'aider dans ce sens mais je ne vois pas comment.

Code : Tout sélectionner

$pdf->MultiCell(0,5,utf8_decode('Adresse : '.$_POST['ADRESSE'].''),0);

Code : Tout sélectionner

$pdf->Rect(10,67,190,50);

Re: [FPDF]Projet, géneration d'un pdf avec récuperation d'informations par un formulaire HTML

par LordNetronos » 22 oct. 2016, 01:17

Je vais tester ça, merci

Re: [FPDF]Projet, géneration d'un pdf avec récuperation d'informations par un formulaire HTML

par Bernard_2102 » 21 oct. 2016, 18:44

Bonjour,
pour info je suis en plein dedans (création devis, facture), j'utilise une fonction trouvé sur le web.

tu compte ta chaine de caractère x caractères par ligne:

<?php
$str = 'abcdef';
echo strlen($str); // 6

$str = ' ab cd ';
echo strlen($str); // 7
?>

et tu passes les valeurs en variable $w, $h
Fonction à utiliser:

function RoundedRect($x, $y, $w, $h, $r, $corners = '1234', $style = '')
//x, y : coin supérieur gauche du rectangle.
//w, h : largeur et hauteur.
//r : rayon des coins arrondis.
//corners : numéro du ou des angles à arrondir : 1, 2, 3, 4 ou toute combinaison (1=haut gauche, 2=haut droite, 3=bas droite, 4=bas gauche).
//style : comme celui de Rect() : F, D (défaut), FD ou DF.
{
$k = $this->k;
$hp = $this->h;
if($style=='F')
$op='f';
elseif($style=='FD' || $style=='DF')
$op='B';
else
$op='S';
$MyArc = 4/3 * (sqrt(2) - 1);
$this->_out(sprintf('%.2F %.2F m',($x+$r)*$k,($hp-$y)*$k ));

$xc = $x+$w-$r;
$yc = $y+$r;
$this->_out(sprintf('%.2F %.2F l', $xc*$k,($hp-$y)*$k ));
if (strpos($corners, '2')===false)
$this->_out(sprintf('%.2F %.2F l', ($x+$w)*$k,($hp-$y)*$k ));
else
$this->_Arc($xc + $r*$MyArc, $yc - $r, $xc + $r, $yc - $r*$MyArc, $xc + $r, $yc);

$xc = $x+$w-$r;
$yc = $y+$h-$r;
$this->_out(sprintf('%.2F %.2F l',($x+$w)*$k,($hp-$yc)*$k));
if (strpos($corners, '3')===false)
$this->_out(sprintf('%.2F %.2F l',($x+$w)*$k,($hp-($y+$h))*$k));
else
$this->_Arc($xc + $r, $yc + $r*$MyArc, $xc + $r*$MyArc, $yc + $r, $xc, $yc + $r);

$xc = $x+$r;
$yc = $y+$h-$r;
$this->_out(sprintf('%.2F %.2F l',$xc*$k,($hp-($y+$h))*$k));
if (strpos($corners, '4')===false)
$this->_out(sprintf('%.2F %.2F l',($x)*$k,($hp-($y+$h))*$k));
else
$this->_Arc($xc - $r*$MyArc, $yc + $r, $xc - $r, $yc + $r*$MyArc, $xc - $r, $yc);

$xc = $x+$r ;
$yc = $y+$r;
$this->_out(sprintf('%.2F %.2F l',($x)*$k,($hp-$yc)*$k ));
if (strpos($corners, '1')===false)
{
$this->_out(sprintf('%.2F %.2F l',($x)*$k,($hp-$y)*$k ));
$this->_out(sprintf('%.2F %.2F l',($x+$r)*$k,($hp-$y)*$k ));
}
else
$this->_Arc($xc - $r, $yc - $r*$MyArc, $xc - $r*$MyArc, $yc - $r, $xc, $yc - $r);
$this->_out($op);
}