Php et fdpf

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 : Php et fdpf

par flopad » 20 févr. 2006, 23:25

Mais je ne l'ai pas téléchargé, je ne sais pas comment l'adapter de manière a définir une largeur précise pour chaque colonne...

par Elie » 20 févr. 2006, 21:26

Cela ne vas pas t'aider mais j'utilise moi meme fpdf et la DOC fournit avec est plus que complete et facile a comprendre.

Si tu ne l'a plus retelecharge le script !

Elie

Php et fdpf

par flopad » 20 févr. 2006, 21:22

Bonjour, j'ai un gros soucis avec mon code que je n'arrive pas à résoudre et dont j'ai vraiment besoin.

Alors, j'ai donc ma base de données access, je veux la récupérer dans un fichier pdf.
Pour cela, l'utilisateur a le choix de récupérer les informations qu'il souhaite, sauf le nom que je ne mets pas dans le formulaire car il faut qu'il apparraisse systématiquement.
Mon code tel qu'il est ci-dessous fonctionne parfaitement, le seul problème est que je ne sais pas comment faire pour donner une largeur prédéfinie à chaque colonne; par exemple dire que la colonne 'Nom - prénom' doit faire 5cm, etc...


Code : Tout sélectionner

<?php if (isset ($_POST['submit']) && $_POST['submit'] === 'Valider') { Connexion à la bdd $base="D:\\Qualite\Annuaire\Annuaire.mdb"; $Annuaire="Annuaire"; //connection au serveur: $cnx = odbc_connect( "DSN_Annuaire","" ,"") or die ("Impossible de se connecter à la base de donnée") ; //PDF define('FPDF_FONTPATH','font/'); require('fpdf/fpdf.php'); Infos concernant le doc pdf qui va être crée $pdf=new FPDF('L','cm','A4'); $pdf->SetFont('Arial','B',12); $pdf->AddPage(); $pdf->SetFillColor(220,130,130); $pdf->SetTextColor(255,255,255); //Titres des colonnes Création des entêtes des colonnes du doc pdf $header = array(); $header[] = 'Nom - Prénom'; for ($m=0;$m<count($_POST['choix']);$m++){ switch($_POST['choix'][$m]){ case 'Societe': $header[] = 'Site'; break; case 'Fixe': $header[] = 'N° Téléphone fixe'; break; case 'Fax': $header[] = 'N° fax'; break; case 'Portable': $header[] = 'N° Portable'; break; case 'Mail': $header[] = 'Adresse e-mail'; break; default: break; } } L'entête 'Nom - Prénom' apparait systématiquement puisque l'utilisateur n'a pas la possibilité de l'enlever $pdf->cell(4.7,1,$header[0],1,0,'C',1);// Le nom dans tous les cas Selon les cases cochées par l'utilisateur, on fait apparaitre ou non la colonne for($i=0;$i<count($_POST['choix']);$i++) { if(isset($_POST['choix'][$i])) $pdf->cell(4.7,1,$header[$i+1],1,0,'C',1);// les autres postes si cases cochées } Selon les cases cochées par l'utilisateur, j'adapte la requete qui va etre faite dans ma bdd grace à l'implode if (isset($_POST['choix'])){ $addInQuery = implode(',', $_POST['choix']); $addInQuery = ','.$addInQuery; } else $addInQuery = ''; $resultat = odbc_exec( $cnx, 'SELECT Nom'.$addInQuery.' FROM Annuaire ORDER BY Nom'); $pdf->SetFillColor(0xdd,0xdd,0xdd); $pdf->SetTextColor(0,0,0); $pdf->SetFont('Arial','',8); $pdf->SetXY(1,$pdf->GetY()+1); $fond=0; while( $row = odbc_fetch_array( $resultat ) ) //tant que c pas la fin de la table { $pdf->cell(4.7,0.7,$row['Nom'],1,0,'C',$fond); for ($m=0;$m<count($_POST['choix']);$m++){ if(isset($_POST['choix'][$m])) $pdf->cell(4.7,0.7,$row[$_POST['choix'][$m]],1,0,'C',$fond); } $pdf->SetXY(1,$pdf->GetY()+0.7); $fond=!$fond; } $pdf->output(); } ?> <html> <head> </head> <body> <form action="a.php" method="POST"> Ici donc mon "formulaire" qui permet à l'utilisateur de sélectionner les informations qu'il va récupérer sur le doc pdf.Par défaut, je coche toutes les cases. <input type = "checkbox" name = "choix[]" value = "Societe" checked = "checked" /> Site <br> <input type = "checkbox" name = "choix[]" value = "Fixe" checked = "checked" /> N° téléphone fixe <br> <input type = "checkbox" name = "choix[]" value = "Fax" checked = "checked" /> N° fax <br> <input type = "checkbox" name = "choix[]" value = "Portable" checked = "checked" /> N° portable <br> <input type = "checkbox" name = "choix[]" value = "Mail" checked = "checked" /> Adresse e-mail <br> <br> <br> <input type="submit" value="Valider" name="submit"/> </form> </body> </html>