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 :

[phpToPDF] Un tableau en PDF


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut [phpToPDF] Un tableau en PDF
    Bonjour à tous,


    j'ai lu les 2 tuto de cornic pour fpdf et phptopdf.

    Je voudrait savoir si les 2 ensemble peuvent fonctionner.

    J'ai un document pdf à générer avec des informations ma base mysql.

    Avec un header et footer, et le contenue sera un tableau (récupérer depuis ma base mysql).

    J'ai créer un document pdf (phptopdf) avec mon tableau et essayer de rajouter le header et footer (fpdf). le pdf s'affiche, le tableau aussi mais pas le header ni le footer.

    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
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
     
    <?php
    //define('FPDF_FONTPATH','/home/www/font/');
    //include('../../fpdf/fpdf.php');
    include("../../fpdf/phpToPDF.php");
     
    include("../fonction/fonction.bdd.php");
    connexion_mysql();
    $id_audit= $_POST["id_audit"];
    class PDF extends FPDF
    {
    //En-tête
    function Header()
    {
        //Logo
        //$this->Image('/v0.1a/img/logopdf.jpg',10,8,20,10);
    	    //Police Arial gras 15
        $this->SetFont('Arial','B',15);
    	$this->Cell(45,25,'Logo.jpg',1,0,'C');
        //Décalage à droite
        //$this->Cell(80);
        //Titre
        $this->Cell(100,25,'Titre',1,0,'C');
    	$this->Cell(100,25,'Information HPS',1,0,'C');
    	$this->Cell(40,25,'Information Audit',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
     
    //include("phpToPDF.php");
     
    $PDF=new phpToPDF('L','mm','A4');
    $PDF->AddPage();
    $PDF->SetFont('Arial','B',16);
     
     
    // Définition des propriétés du tableau.
    $proprietesTableau = array(
    	'TB_ALIGN' => 'L',
    	'L_MARGIN' => 10,
    	'BRD_COLOR' => array(0,92,177),
    	'BRD_SIZE' => '0.3',
    	);
     
    // Définition des propriétés du header du tableau.	
    $proprieteHeader = array(
    	'T_COLOR' => array(150,10,10),
    	'T_SIZE' => 10,
    	'T_FONT' => 'Times',
    	'T_ALIGN' => 'C',
    	'V_ALIGN' => 'T',
    	'T_TYPE' => 'B',
    	'LN_SIZE' => 7,
    	'BG_COLOR_COL0' => array(170, 240, 230),
    	'BG_COLOR' => array(170, 240, 230),
    	'BRD_COLOR' => array(0,92,177),
    	'BRD_SIZE' => 0.2,
    	'BRD_TYPE' => '1',
    	'BRD_TYPE_NEW_PAGE' => '',
    	);
     
    // Contenu du header du tableau.	
    $contenuHeader = array(
    	100, 20, 20, 20, 10, 100,
    	"Critere d\'évaluation", "Satisfaisant", "A améliorer", "Non Satisfaisant", "N/A", "Observation/justification"
    	);
     
    // Définition des propriétés du reste du contenu du tableau.	
    $proprieteContenu = array(
    	'T_COLOR' => array(0,0,0),
    	'T_SIZE' => 10,
    	'T_FONT' => 'Times',
    	'T_ALIGN_COL0' => 'L',
    	'T_ALIGN' => 'R',
    	'V_ALIGN' => 'M',
    	'T_TYPE' => '',
    	'LN_SIZE' => 6,
    	'BG_COLOR_COL0' => array(245, 245, 150),
    	'BG_COLOR' => array(255,255,255),
    	'BRD_COLOR' => array(0,92,177),
    	'BRD_SIZE' => 0.1,
    	'BRD_TYPE' => '1',
    	'BRD_TYPE_NEW_PAGE' => '',
    	);	
    //////
    $sql="SELECT question_qt_audit, point_satisfaisant_audit, point_aameliorer_audit, point_nonsatisfaisant_audit
    FROM rps_audit
    INNER JOIN qt_audit ON qt_audit.id_qt_audit= rps_audit.id_qt_audit
    INNER JOIN client_audit ON client_audit.id_client_audit=rps_audit.id_client_audit
    INNER JOIN information_audit ON information_audit.id_audit=client_audit.id_audit
    WHERE rps_audit.id_client_audit='1';";
    $query= mysql_query($sql) or die("2/Mysql error:".mysql_error());
    //Connexion à la base
     
    $contenuTableau = array(
    	"Circuits cohérents des denrées, du personnel et des déchets", 1, 2, 4, 5, "tttttttttttttttttttttt",
    	"Présence d'un plan de maintenance (entretien, révision)", 3, 4, 4, 5, "tttttttttttttttttttttt",
    	"Pas de gaspillage d'eau constaté (fuite, robinet utilisé inutilement)", 5, 6, 4, 5, "tttttttttttttttttttttt",
    	"Pas de gaspillage d'énergie constaté (pièce éclairée inutilement, appareil en chauffe inutile…)", 7, 8, 4, 5, "tttttttttttttttttttttt",
    	);
     
     
     
     
     
     
    // D'abord le PDF, puis les propriétés globales du tableau. 
    // Ensuite, le header du tableau (propriétés et données) puis le contenu (propriétés et données)
    $PDF->drawTableau($PDF, $proprietesTableau, $proprieteHeader, $contenuHeader, $proprieteContenu, $contenuTableau);
     
    $PDF->Output();
    ?>
    La disposition du pdf serait le suivant:
    [header] => diviser 3 partie (logo, titre, infos doc)
    [Info Client]
    [Contenue] => Tableau
    [Footer]

    Merci d'avance pour votre aide.

    guigui69

  2. #2
    Membre émérite
    Avatar de jc_cornic
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    623
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 623
    Par défaut
    Salut guigui, tu cree une classe que tu n'utilises pas...
    Si tu veux toucher aux header/footer avec phpToPDF, tu dois les surcharger ou retoucher le code de phpToPDF..

    D'après mes souvenirs, seule la méthode footer est redefinie dans phpToPDF.php car je voulais y mettre l'affichage des numéros de page. Tu peux changer ce code et y ajouter celui de header (toujours dans le fichier phpToPDF.php)

    Bon code et A+
    JC

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut
    Merci, mais peux-tu m'expliquer car j'ai pas bien compris ta réponse (Désolé).

    je débute dans la création de document pdf. J'aurai besoin de réaliser un document pdf avec un header et un footer, le reste de la page serait un tableau. Quel méthode me conseille tu-utiliser pour arriver à mes fins?

    Merci

    guigui69

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 623
    Par défaut
    Salut guigui, pour ton problème, tu veux donc générer un document pdf avec header et footer et qui contient un tableau, c'est ça ???

    Si oui,
    Utilises la classe phpToPDF et surcharge les classes header et footer car je les ai personnalisé (numéro de page pour le footer et rien pour le header).
    Pour faire cela, tu peux soit creer une classe guiguiPhpToPDF qui hérite de phpToPDF et tu redeclare les méthodes header et footer. Soit tu utilises la classe phpToPDF et tu réécris dans le fichier phpToPDF.php (ou fpdf.php) les méthodes header et footer...

    Ensuite, pour le tableau tu utilise la méthode drawTableau de la classe phpToPDF.



    Le problème de ton code (celui donné en POST 1) est que tu cree une classe qui hérite de fpdf, tu redeclare bien les méthodes header et footer mais tu créer une instance de la classe phpToPDF qui est différente...

    Tu devrais changer dans ton code la création de ton objet PDF


    Ais-je été plus clair ?

    ++
    JC

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut
    Merci de m'avoir répondu,

    Oui c'est ca que je veut faire.

    Comment je peut faire pour créer ma class (guiguiphptopdf) en heritant de phptopdf et en ajoutant le header et le footer.


    Merci de ton aide

    guigui69

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 623
    Par défaut
    Salut, tu cree une classe qui hérite de phpToPDF

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    class guiguiPhpToPDF extends phpToPDF
    {
    //En-tête
    function Header()
    {
    ...

    Ensuite, c'est comme tu as fait sauf pour la création de l'instance de la classe créée...

    Tu dois alors faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $PDF=new guiguiphpToPDF('L','mm','A4');
    ...

    Espérant t'avoir aidé...

    ++
    JC

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

Discussions similaires

  1. [Cognos Advanced Report] : répétition de tableau en PDF
    Par Darcynette dans le forum Cognos
    Réponses: 3
    Dernier message: 20/06/2008, 12h47
  2. [débutant] de xml vers tableau en pdf
    Par bwwilly dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 24/07/2007, 18h23
  3. [phpToPdf] Création de formulaire PDF
    Par polako94 dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 16/01/2007, 12h23
  4. [phpToPdf] Texte sur un pdf existant en php
    Par Alain15 dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 12/07/2006, 14h36
  5. [Info]Exportation automatique de tableau en *.pdf ou *.doc
    Par demifred dans le forum Documents
    Réponses: 3
    Dernier message: 12/08/2005, 08h06

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