Comment utiliser fpdf dans mon script php

Résolu
Bonjour,
Je n'ai jamais utiliser fpdf,je ne sais pas du tout comment l'intégrer dans mon code et comment faire un pdf..je vous demande de l'aide car j'ai regardé sur le site et avec mon ami google,mais je n'ai pas trouvé de tuto qui m'expliquerai du début à la fin le déroulement...Merci

112 réponses

Résumé de la discussion

La problématique centrale concerne l'apprentissage et l'intégration de FPDF dans un projet PHP pour générer un PDF fonctionnel, avec des exemples pratiques montrant l'en-tête et le pied de page. Des scripts concrets proposent d'inclure FPDF par require, de définir une classe dérivée avec en-têtes et pieds de page personnalisés, puis d'ajouter des pages et d'appeler Output. D'autres échanges abordent l'organisation du code et les difficultés d'inclure des blocs séparés, tout en suggérant des alternatives comme l'impression via CSS ou des liens vers des PDFs générés. Pour compléter, des exemples avancés traitent de tableaux et de données issues de fichiers, mais la difficulté principale reste l'organisation des inclusions et la réutilisation du code entre plusieurs pages.

Bobot (l’IA à votre service)
  1. dans ma page stat,j'ai un tableau que j'aimerai imprimer avec le header et le pied de page j'ai mis dans cette page un lien imprim qui s'ouvre sur la même page...c'est la page où ce trouve la liste et les dates et le bouton rechercher et c'est cà que je ne veux pas imprimer..j'ai fait avec href javascript mais cela me propose toute la page...je voudrais faire quelque chose de présentable
    1
    1. Contributeur
      Coucou!
      je suis de retour!
      Bien,sur le site fpdf il y a pas mal de tuto sur son utilisation. Dis moi, comment veux tu utiliser cela? que veux tu imprimer?
      0
      1. Contributeur
        ok!
        Tes données statistiques viennent d'une base de données? si oui, alors inspires toi de ce que je dis ci-dessous:
        tu vas sur http://fpdf.org et tu cliques sur le lien "scripts" et tu regarde dans les exemples du tableau la ligne suivante:
        20/07/2003 Carlos Vásquez Sáez Exemple avec MySQL
        0
        1. Bonjour,
          j'ai essayé ce code mais il ya des erreurs de déclaration de variables et de paramètre
          0
          1. J'ai récupére ceci sur fpdf.org que j'ai mis dans un fichier appelé pdf.php

            <?php
            require('../fpdf/fpdf.php');
            class PDF extends FPDF
            {
            // En-tête
            function Header()
            {
                // Logo
                $this->Image('images/logo.png',10,6,30);
                // Police Arial gras 15
                $this->SetFont('Arial','B',15);
                // Décalage à droite
                $this->Cell(80);
                // Titre
                $this->Cell(30,10,'Consommation',1,0,'C');
                // Saut de ligne
                $this->Ln(20);
            }
            
            // Pied de page
            function Footer()
            {
                // Positionnement à 1,5 cm du bas
                $this->SetY(-15);
                // Police Arial italique 8
                $this->SetFont('Arial','I',8);
                // Numéro de page
                $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
            }
            }
            
            // Instanciation de la classe dérivée
            $pdf = new PDF();
            $pdf->AliasNbPages();
            $pdf->AddPage();
            $pdf->SetFont('Times','',12);
            for($i=1;$i<=40;$i++)
                $pdf->Cell(0,10,'Impression de la ligne numéro '.$i,0,1);
            $pdf->Output();
            ?>
            <?php
            require('../fpdf/fpdf.php');
            
            class PDF extends FPDF
            {
            // Chargement des données
            function LoadData($file)
            {
                // Lecture des lignes du fichier
                $lines = file($file);
                $data = array();
                foreach($lines as $line)
                    $data[] = explode(';',trim($line));
                return $data;
            }
            
            // Tableau coloré
            function FancyTable($header, $data)
            {
                // Couleurs, épaisseur du trait et police grasse
                $this->SetFillColor(255,0,0);
                $this->SetTextColor(255);
                $this->SetDrawColor(128,0,0);
                $this->SetLineWidth(.3);
                $this->SetFont('','B');
                // En-tête
                $w = array(40, 35, 45, 40);
                for($i=0;$i<count($header);$i++)
                    $this->Cell($w[$i],7,$header[$i],1,0,'C',true);
                $this->Ln();
                // Restauration des couleurs et de la police
                $this->SetFillColor(224,235,255);
                $this->SetTextColor(0);
                $this->SetFont('');
                // Données
                $fill = false;
                foreach($data as $row)
                {
                    $this->Cell($w[0],6,$row[0],'LR',0,'L',$fill);
                    $this->Cell($w[1],6,$row[1],'LR',0,'L',$fill);
                    $this->Cell($w[2],6,number_format($row[2],0,',',' '),'LR',0,'R',$fill);
                    $this->Cell($w[3],6,number_format($row[3],0,',',' '),'LR',0,'R',$fill);
                    $this->Ln();
                    $fill = !$fill;
                }
                // Trait de terminaison
                $this->Cell(array_sum($w),0,'','T');
            }
            }
            
            $pdf = new PDF();
            // Titres des colonnes
            $header = array('UF', 'Service', 'Cartouche', 'Date');
            // Chargement des données
            $data = $pdf->LoadData('consommation.txt');
            $pdf->SetFont('Arial','',14);
            $pdf->AddPage();
            $pdf->BasicTable($header,$data);
            $pdf->AddPage();
            $pdf->ImprovedTable($header,$data);
            $pdf->AddPage();
            $pdf->FancyTable($header,$data);
            $pdf->Output();
            ?>

            mais je ne sais pas si c'est bon car c'est en deux partie que j'ai mise l'une après l'autre mais comment je fais pour récupéré l'include où j'en ai besoin??
            0
            1. Contributeur
              Salut!
              le code marche?s'il marche,alors pour afficher le résultat,tu met juste un lien et tu appelles ta page (pdf.php).
              Cdt
              0
              1. Salut,
                hier ,je n'ai pas pu te répondre problème de connexion...donc j'ai fais le lien avec ma page pdf.php et ceci comme erreur
                Fatal error: Call to undefined method PDF::LoadData() in C:\Program Files\wamp\www\gestioncart\php\pdf.php on line 87 ce qui veut dire à cette ligne
                // Chargement des données
                $data = $pdf->LoadData();ce qui est en gras attend un paramètre mais je ne sais pas quel fichioer récupéré...?????
                0
                1. Contributeur
                  Salut!
                  $data = $pdf->LoadData('consommation.txt');
                  
                  

                  bizarre,pourtant dans ton code tu fais appel à un fichier texte avec LoadData().
                  Tu veux imprimer des statistiques?et ces statistiques proviennent d'une table?
                  0
                  1. j'ai enlevé le paramètre dans le load et ces erreurs...

                    Deprecated: Function set_magic_quotes_runtime() is deprecated in C:\Program
                    Files\wamp\www\gestioncart\fpdf\fpdf.php on line 1165

                    Erreur de FPDF: Certaines données ont déjà été sortie, ne peuvent pas envoyer de fichiers PDF
                    0
                    1. Contributeur
                      pourquoi tu enlèves?si tu n'a rien,il va générer une erreur.pourquoi tu as deux parties de code pour générer le pdf?
                      «Il faut avoir déjà beaucoup appris de choses pour savoir demander ce qu'on ne sait pas.»
                      Jean-Jacques ROUSSEAU
                      0
                      1. j'ai changé le code pourn'en faire plus qu'un et cette erreur :

                        ( ! ) Fatal error: Call to undefined method PDF::LoadData() in C:\Program Files\wamp\www\gestioncart\php\pdf.php on line 88²
                        il faut bien un paramètre dans ce loaddata???
                        0
                        1. Contributeur
                          oui,il faut mettre le chemin vers tes données.si tes données sont dans un fichier texte,alors dans le paramètres met le lien vers ce fichier.
                          0
                          1. je n'ai pas de fichier texte mais dans un fichier php
                            0
                            1. Contributeur
                              dis moi,tes données statistiques proviennent de ta base de données?
                              0
                              1. Si tu fais un PDF juste pour pouvoir n'imprimer que certaines partie de ta page et en masquer d'autre, tu n'avais pas du tout besoin de passer par ça.

                                Avec CSS tu peux créer des styles spécifique à l'impression.
                                Je t'invite à regarder cette page: https://www.alsacreations.com/tuto/lire/586-feuille-style-css-print-impression.html
                                De cette manière, tu pourras sans problème masquer des éléments pour l'impression.
                                Il te suffira de placer un id ou une classe sur l'élément et dans le css prévu pour l'impression d'ajouter display:none;
                                « La recherche commence là où s'arrête la connaissance. »
                                0
                                1. bonjour,
                                  je vais regarder le lien que tu m'indique ...et te tiens au courant...et mes données viennent de ma bdd...bissdebrazza
                                  0
                                  1. Contributeur
                                    ok! envoi moi la structure de ta table (ce que tu veux afficher),et je te fais un script avec fpdf.
                                    0
                                    1. j'essayé le tuto mais j'ai un souci j'ai mis dans des div ce que je ne veux pas sur l'imprim quand j'appui sur mon lien pour imprimer il me garde toute la page mais par contre m'enlève le tableau à imprimer,en faite je ne veux enlever que la partie où il y a les champs textes le bouton rechercher et la liste déroulante, âprès le header,le footer je veux les garder ainsi que le tableau
                                      0
                                      1. Difficile de pouvoir t'aider d'avantage sans autre information.
                                        Aurai-tu un lien vers ta page?
                                        0
                                    2. structure de ma table :
                                      Structure de la table 'servcart'
                                      0
                                      1. La structure de ta table SQL m'apporte rien concernant ton CSS...
                                        0
                                    3. mon css général tu veux ????
                                      0
                                      1. Un lien vers la page aurai été l'idéal!
                                        N'ayant pas ton code, je peux pas ta guider d'avantage sur la manière de construire ton CSS spécial impression.
                                        0
                                    • 1
                                    • 2
                                    • 3
                                    • 4
                                    • 5
                                    • 6