IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[FPDF] Exporter résultat en PDF mais sous forme de tableau


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 89
    Points : 26
    Points
    26
    Par défaut [FPDF] Exporter résultat en PDF mais sous forme de tableau
    Coucou,

    Je suis toujours sur la même affaire ....

    Maintenant que j'ai réussi à exporter mes données sous PDF grâce à l'aide d'un membre de ce forum sans qui je serais encore entrain de bosser dessus (et je le remercie encore), j'aimerais pouvoir exporter ses données mais sous forme de tableau plutôt que sous forme de ligne qui se suivent séparées de --- ou autre chose ....
    Comment puis-je faire cela ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    } else if ($export == 'pdf') {
      require('fpdf.php');
      $pdf=new FPDF();
      $pdf->AliasNbPages();
      $pdf->AddPage('P','mm','A4');
      $pdf->SetFont('Times','BIU',20);
      $pdf->Cell(127,10,'Exportation de la liste des affaires en PDF',1);
      $pdf->SetFont('Times', '', 10);
      $pdf->Write(20, "\r\n");
        while ($row_rsDossiers = mysql_fetch_assoc($rsDossiers)) {
        $pdf->Write(5, 
          $row_rsDossiers['Numaff'] ."---".
          $row_rsDossiers['Client'] ."---".
          $row_rsDossiers['Nomaff'] ."---".
    	  $row_rsDossiers['Resprojet'] ."---".
    	  $row_rsDossiers['Annee'] ."---".
    	  $row_rsDossiers['Numcd'] ."\r\n");
      }
      $pdf->Output();
    Voilà le bout de code que j'utilise pour l'export en PDF ...

    Merci d'avance de votre aide ...

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Réponse un peu tardive mais : http://www.fpdf.org/

    Tu trouveras une classe super sympa pour générer des pdf, avec de nombreux développements supplémentaires, dont une classe qui permet de générer du pdf à partir de code html.
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 89
    Points : 26
    Points
    26
    Par défaut
    J'ai déjà essayé de rajouter quelques lignes dans ce bout de code mais je n'arrive pas lui faire afficher les resultat sous forme de tableau ... et en plus comme ça ne lui plaît pas il m'insulte .....

  4. #4
    Membre éclairé
    Avatar de jc_cornic
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    623
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 623
    Points : 823
    Points
    823
    Par défaut
    Bonsoir, je viens de lire ce POST et me permet de vous indiquer un article récent sur la génération de documents PDF.

    Il est possible de générer des tableaux, des images, du texte et un sommaire...

    Merci de me faire un retour sur l'utilisation de la classe phpToPDF pour voir les éventuels bugs

    ++
    JC
    VELOMASTER, idée cadeau ? un jeu de plateau

    Hummmmm, des donuts !!!!

    Merci de penser à , et et aussi

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 89
    Points : 26
    Points
    26
    Par défaut
    Pour l'exportation sous forme de tableau c'est OK

    Mais maintenant j'aimerais pouvoir adapter la taille des colonnes à la longueur maxi des caractères que j'ai a y insérer ...

    Pourriez-vous m'indiquez ce que je dois mettre et à quel endroit svp ???

    Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    <?php
    require_once('../Connexions/ConnexionArchives.php');
    mysql_select_db($database_ConnexionArchives, $ConnexionArchives);
     
    $orderby = isset($_GET['orderby']) ? $_GET['orderby'] : 'numaff';
    $export = isset($_GET['export']) ? $_GET['export'] : '';
     
    $query_rsDossiers = "SELECT Archives.Numaff, Archives.Client, Archives.Nomaff, Archives.Resprojet, Archives.Annee, Archives.Numcd FROM Archives ORDER BY $orderby";
    $rsDossiers = mysql_query($query_rsDossiers, $ConnexionArchives) or die(mysql_error());
    $totalRows_rsDossiers = mysql_num_rows($rsDossiers);
     
    if ($export === 'excel') {
    	header("Content-Type: text/x-csv");
    	header('Content-Disposition: attachement; filename="Exportexcel.csv"');
     $list = "\"N° affaires\"; \"Clients\"; \"Noms d'affaires\"; \"Responsables projets\"; \"Années\"; \"N° CD/DVD\";\r\n";
      while ($row_rsDossiers = mysql_fetch_assoc($rsDossiers)) {
        $list .= $row_rsDossiers['Numaff'] .";". $row_rsDossiers['Client'] .";"
    	  	  .  $row_rsDossiers['Nomaff'] .";". $row_rsDossiers['Resprojet'] .";"
    		  .  $row_rsDossiers['Annee'] .";". $row_rsDossiers['Numcd'] ."\r\n";
      }
      echo $list;
     
    } elseif ( $export === 'pdf' ) {
    ob_start(); // Enclenche la tamporisation de sortie
      require('fpdf.php');
     
    $x = '10';
    $y = '10';
     
    $pdf=new fpdf();//on instancie un objet Portait en milimètre et au format A4
    /**
    * Comme je met les mesure en mm cele me permet de placer tous les éléments aux mm prés
    * Cela fonctione sur le principe de l'abscice et l'ordonnée
    * le X représente la largeur
    * le Y représente la hauteur
    */ 
    $pdf->AliasNbPages(nb);
    $pdf->AddPage('P','mm','A4');//on crée la page 
    $pdf->Image('../images/logo-2.jpg',10,10,30,10);
    $pdf->Image('../images/logo-2.jpg',40,10,30,10);
    $pdf->Image('../images/logo-2.jpg',70,10,30,10);
    $pdf->Image('../images/logo-2.jpg',100,10,30,10);
    $pdf->Image('../images/logo-2.jpg',110,10,30,10);
    $pdf->Image('../images/logo-2.jpg',140,10,30,10);
    $pdf->Image('../images/logo-2.jpg',170,10,30,10);
    /**
    * les mesure sont aux hasard à toi de modifier le 10/10 représente la position sur la page,30/10 la taille de l'image
    */ 
    $pdf->SetXY($x, $y);
    $pdf->SetFont('Times','BIU',20);// défint l'écriture pour le titre 
    $pdf->Cell(190,10,'Exportation de la liste des affaires en PDF',1,1,'C');
     
    $nb_col = 6;
    $largeur_total_page = 210;
    $largeure_colonne = ($largeur_total_page -20) / $nb_col;
     
    $pdf->SetXY($x, $y+10);//on place le pointeur
    $pdf->SetFont('Times', '', 7);// défint l'écriture pour tous ce qui suit 
     
    while ($row_rsDossiers = mysql_fetch_assoc($rsDossiers)) {
     
    $pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Numaff'], 1, 0, 'C', 0);
    $pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Client'], 1, 0, 'C', 0);
    $pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Nomaff'], 1, 0, 'C', 0);
    $pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Resprojet'], 1, 0, 'C', 0);
    $pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Annee'], 1, 0, 'C', 0);
    $pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Numcd'], 1, 1, 'C', 0);
    }
    $pdf->Cell(10,10,"nb"); // Pour afficher le nombre de pages total à la fin du document (à 10,10 de la dernière cellule)
     
    ob_end_clean(); // Détruit les données du tampon de sortie et éteint la tamporisation de sortie
    $pdf->Output();
    }
    ?>
    D'avance merci

  6. #6
    Membre éclairé
    Avatar de jc_cornic
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    623
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 623
    Points : 823
    Points
    823
    Par défaut
    J'ai vu que tu utilises la variable $largeurColonne pour tes Cell, ca ne suffit pas ???

    Pourrais-tu reformuler la demande avec un exemple de ce que tu voudrais au final et ce qui ne marche pas...

    Merci
    ++
    JC
    VELOMASTER, idée cadeau ? un jeu de plateau

    Hummmmm, des donuts !!!!

    Merci de penser à , et et aussi

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 89
    Points : 26
    Points
    26
    Par défaut
    Et bien j'ai une premiere colonne NUMAFF (c'est le N° d'affaire) qui généralement ne depasse pas 10 caractères, ensuite le nom du client, qui peut allez jusqu'à env.40 caractères, ensuite la désignation de l'affaire qui peut allez encore plus loin, l'année en 4 chiffres ... etc

    J'aimerais donc pouvoir définir pour chaque colonne la largeur maxi, j'aimerais que le texte ne dépasse pas ...

    Si possible, j'aimerais que les colonnes s'adapte automatiquement à la taille de mon texte ...

    Tu vois ce que je veux dire ???

  8. #8
    Membre éclairé
    Avatar de jc_cornic
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    623
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 623
    Points : 823
    Points
    823
    Par défaut
    As tu essayé la fonction MultiCell qui te permet des retours à la ligne (je pense à la désignation des affaires) automatiques en fonction de la largeur de la cellule et de la longueur de ton texte...

    Sinon, si tu veux vraiment tes textes sur une seule ligne, il faut parser tous tes textes, calculer les longueurs max et construire tes cellules en fonction de ces valeurs...

    Espérant t'avoir aidé,
    ++
    JC
    VELOMASTER, idée cadeau ? un jeu de plateau

    Hummmmm, des donuts !!!!

    Merci de penser à , et et aussi

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 89
    Points : 26
    Points
    26
    Par défaut
    Pourrais-tu me dire comment faire pour la fonction MultiCell stp ???

    Peux-tu me donner un exemple concret par rapport à ce que je voudrais faire ???

    Merci beaucoup

  10. #10
    Membre éclairé
    Avatar de jc_cornic
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    623
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 623
    Points : 823
    Points
    823
    Par défaut
    Tu as toutes les indications sur le fpdf.org des tutoriaux et la doc.

    Si vraiment tu galères (ce que je ne pense pas), alors je te filerai un peu de code, mais tu vas voir, c assez simple d'utilisation


    Par contre, j'ai fait une classe héritant de celle proposée sur fpdf.org, elle permet entre autre de faire des tableaux en spécifiant les largeurs, hauteurs polices de caractères de chaque cellules, tu peux aussi y jeter un oeil. Le lien est dans mon premier POST

    ++
    JC
    VELOMASTER, idée cadeau ? un jeu de plateau

    Hummmmm, des donuts !!!!

    Merci de penser à , et et aussi

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 89
    Points : 26
    Points
    26
    Par défaut
    Ok je vais essayer,

    Juste comme ça ... voilà ce que j'ai mis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Numaff'], 1, 0, 'C', 0);
    $pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Client'], 1, 0, 'C', 0);
    // $pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Nomaff'], 1, 0, 'C', 0);
    $pdf->MultiCell(100,5, $row_rsDossiers['Nomaff'], 1, "C", 0);
    $pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Resprojet'], 1, 0, 'C', 0);
    $pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Annee'], 1, 0, 'C', 0);
    $pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Numcd'], 1, 1, 'C', 0);
    }
    Donc c'est pas mal il me fait une cellule mais il me met les autres en dernier ...

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 89
    Points : 26
    Points
    26
    Par défaut
    En fait, c'est beaucoup plus simple que ça ......

    Il suffisait juste de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $pdf->Cell(10, 5, $row_rsDossiers['Numaff'], 1, 0, 'C', 0);
    $pdf->Cell(30, 5, $row_rsDossiers['Client'], 1, 0, 'C', 0);
    $pdf->Cell(70, 5, $row_rsDossiers['Nomaff'], 1, 0, 'C', 0);
    $pdf->Cell(20, 5, $row_rsDossiers['Resprojet'], 1, 0, 'C', 0);
    $pdf->Cell(10, 5, $row_rsDossiers['Annee'], 1, 0, 'C', 0);
    $pdf->Cell(50, 5, $row_rsDossiers['Numcd'], 1, 1, 'C', 0);
    }
    Plutôt que de marquer $largeure_colonne ...

    J'aurais dû y penser ....

    Donc j'en conclu que l'affaire est résolu ....

    Mais je vais quand même allez voir ton lien ....

    En tout cas merci beaucoup pour ton aide ....

  13. #13
    NoT
    NoT est déconnecté
    Membre actif
    Profil pro
    Inscrit en
    Février 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 237
    Points : 280
    Points
    280
    Par défaut
    En lisant la doc. de FPDF t'aurais pu t'en rendre compte plus vite

    Pense au tag [RESOLU] ^^

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 89
    Points : 26
    Points
    26
    Par défaut
    C'est clair mais ça ne m'avais pas fais tilt tout de suite ...

    Comme je ne suis pas encore en expert dans ce langage, tout ne me saute pas au yeux aussi facilement qu'à un pro ...

    Mais bon petit à petit je pige de plus en plus ...

    Heureusement d'ailleurs

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Résultat d'une fonction sous forme de tableau
    Par Touty01 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 31/05/2010, 23h35
  2. Réponses: 4
    Dernier message: 09/05/2007, 23h39
  3. Réponses: 2
    Dernier message: 31/03/2006, 11h29
  4. [Stratégie]Résultat d'une formule sous forme de String
    Par leminipouce dans le forum Langage
    Réponses: 12
    Dernier message: 21/02/2006, 11h40
  5. résultat de requêtte sql sous form de table
    Par developpeur_mehdi dans le forum Bases de données
    Réponses: 5
    Dernier message: 08/03/2004, 15h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo