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] Dimensionner colonnes PDF


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut [FPDF] Dimensionner colonnes PDF
    Bonjour tout le monde,

    J'ai ce code qui me crée un fichier PDF :

    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
    <?php
    session_start();
    define('FPDF_FONTPATH','font/');
    require('../../PDF/mysql_table.php');
     
    //Connexion a la base
    mysql_connect('localhost','root','mdp');
    mysql_select_db('pharma');
     
    class PDF extends PDF_MySQL_Table
    {
    	function Header()
    	{
    		//Titre
    		$this->SetFont('Arial','',10);
     
    		$this->Cell(0,6,''.$_SESSION['NOM_ET'].' '.$_SESSION['PRENOM_ET']. ' (Page ' . $this->PageNo().' sur'. $this->AliasNbPages(). ' {nb} )'. '      Date : '. date("d/m/y") ,0,1,'C');
    		$this->Ln(10);
     
     
    		//Imprime l'en-tete du tableau si nécessaire
    		parent::Header();
    	}
    }
     
    $pdf=new PDF();
    $pdf->Open();
    $pdf->AddPage();
     
     
    $sql = "SELECT Choix_Cours, Nombre_Total_ECTS  FROM cao WHERE MATRICULE_ET = '".$_SESSION['matricule_to_use']."' ";
    $req_sql = mysql_query($sql);
    $resultat = mysql_fetch_array($req_sql);
    //je transforme le tableau en string les éléments séparés par des virgules
    $tableau_en_chaine = implode(",",$_SESSION['tableau_cours']);
     
    $liste_cours = "SELECT MNEMONIC, NOM_COURS, ECTS FROM cours WHERE ID IN(".$tableau_en_chaine.");";
    echo $liste_cours;
    echo 'ici ' . $chaine_cours_id;
     
     
     
    //Premier tableau : imprime toutes les colonnes de la requete
    $pdf->Table($liste_cours);
     
    //Sortie vers l\'écran
    $pdf->Output(I);
    //***Vue que cela ne fonctionne pas avec IE, je dois ajotuer ce code qui crée un fichier temporaire (voir FAQ fpdf)***
    //Détermination d'un nom de fichier temporaire dans le répertoire courant
    $file = basename(tempnam('.', 'tmp'));
    rename($file, $file.'.pdf');
    $file .= '.pdf';
    //Sauvegarde du PDF dans le fichier
    $pdf->Output($file, 'F');
    //Redirection
    header('Location: '.$file);
    ?>
    ça me crée un PDF de 3 colonnes.

    Sauriez-vous me dire comment je pourrais faire pour que ma première colonne soit à 10 cm, la seconde à 70 et la troisième à 20 cm (ou %) ?

    Merci d'avance.

    beegees

  2. #2
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    L'endroit ou tes 3 colonnes sont créées dans le fichier pdf n'est pas visible, peut être dans la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdf->Table($liste_cours);
    En tous cas tu as la méthode Cell( w, h, ...) dont le premier argument est la largeur en cm.

  3. #3
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par riete Voir le message
    L'endroit ou tes 3 colonnes sont créées dans le fichier pdf n'est pas visible, peut être dans la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdf->Table($liste_cours);
    En tous cas tu as la méthode Cell( w, h, ...) dont le premier argument est la largeur en cm.
    Salut,

    Merci beaucoup pour ta réponse.

    J'ai essayé avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdf->Table($liste_cours);
    mais ça ne donne rien.

    Je vais voir si je peux ajouter cell dans mon code.

    Voici la doc de la bibliothèque que j'utilise en plus de fpdf :

    Tableau avec MySQL
    Informations
    Auteur : Olivier
    Licence : Freeware
    Description
    Cette classe permet d'imprimer un tableau dont les données proviennent d'une requête MySQL. L'en-tête est imprimé automatiquement sur chaque page. La méthode pour ajouter une colonne est la suivante :

    function AddCol([mixed field [, mixed width [, string caption [, string align]]]])

    field : champ de la requête SQL (nom ou indice). -1 signifie que la colonne représente le champ situé à la même position dans la requête (valeur par défaut).

    width : largeur de la colonne. Elle peut être un nombre donnant la valeur absolue, ou une chaîne de la forme x% pour indiquer le pourcentage de la largeur du tableau. -1 signifie la largeur du tableau divisée par le nombre de colonnes (valeur par defaut).

    caption : titre de la colonne. S'il est vide, le nom du champ avec une majuscule est utilisé (valeur par défaut).

    align : alignement du texte dans la colonne. Les valeurs possibles sont L, C et R (valeur par défaut : L).

    Pour imprimer le tableau :

    function Table(string query [, array prop])

    query : la requête SQL.

    prop : tableau associatif contenant les propriétés du tableau. Les clés possibles sont :

    width : largeur du tableau. Utile lorsqu'on indique les largeurs des colonnes en pourcentage. La valeur par défaut est celle de la page sans les marges.
    align : alignement du tableau dans la page. Les valeurs possibles sont L, C et R (valeur par défaut : C).
    padding : marge gauche et droite utilisée dans les cellules. Valeur par défault : 1 mm.
    HeaderColor : couleur de fond pour l'en-tête (tableau avec les trois composantes RVB).
    color1 : couleur de fond pour les lignes impaires.
    color2 : couleur de fond pour les lignes paires.

    Si aucune colonne n'a été définie quand Table() est appelée, les colonnes correspondant à tous les champs de la requête sont ajoutés automatiquement.
    Après l'impression du tableau, les définitions des colonnes sont effacées.
    Merci encore.

    beegees

  4. #4
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    C'est bien ce que je me disais. C'est un peu obscure comme méthode.

    Je te conseille de gérer toi même tes 'Cell()' tu garderas le controle ;-)

    A+

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 20
    Par défaut
    Personnellement, je débute dans le php et la création des pdf.

    Je n'utilise donc pas de bibliothèque, je gère tous empiriquement avec

    $posx = $posx + $num;
    $pdf->SetXY($posx, $posy);
    $pdf->Cell($num, 0, 'Toto' , 0, 0, 'C');

  6. #6
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Citation Envoyé par CoudJM Voir le message
    Personnellement, je débute dans le php et la création des pdf.

    Je n'utilise donc pas de bibliothèque, je gère tous empiriquement avec

    $posx = $posx + $num;
    $pdf->SetXY($posx, $posy);
    $pdf->Cell($num, 0, 'Toto' , 0, 0, 'C');
    Je pense que tu as raison car fpdf est déjà une blibliothèque

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

Discussions similaires

  1. [FPDF] Génération de PDF en PHP
    Par Bomba dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 16/03/2006, 15h59
  2. [FPDF] afficher un pdf à la volée
    Par reventlov dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 10/03/2006, 12h42
  3. [FPDF] Statistiques en pdf
    Par kagura dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 26/02/2006, 11h41
  4. [FPDF] Créer un PDF et l'envoyer par email avec PHPMailer
    Par nico33307 dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 12/12/2005, 22h49
  5. [SGBD] FPDF+enregistrer le pdf généré dans BDD MySQL
    Par Flushovsky dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 29/11/2005, 16h22

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