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 :

[PDF] 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
    Candidat au Club
    Homme Profil pro
    Technicien d'exploitation
    Inscrit en
    Février 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien d'exploitation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 4
    Par défaut [PDF] Tableau en PDF
    Bonjour,

    Je souhaite transformer un tableau en PDF. Ceci est réussi grâce à FPDF ou encore DOMPDF mais seulement pour du contenu en HTML.
    Cependant ça ne fonctionne plus dès qu'il y a quelques balises php et une requête sql.

    Pourriez vous m'aider? Comment je dois procéder?

    Code de base
    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
    <?php
     
    require_once('connexion.php');
     
    if(isset($_POST['date'])) $date=$_POST['date']; else $date="";
    if(isset($_POST['datedeux'])) $datedeux=$_POST['datedeux']; else $datedeux="";
     
    echo "</br>";
    ?>
    <div align = "center">
    <h3><?php echo $date; ?></h3>
    </div>
     
    <?php
    $sql = "SELECT * FROM `registre` WHERE `entree` BETWEEN '".$date." 00:00:00.00' AND '".$datedeux." 23:59:59.999' ORDER BY `entree` ASC";
    $resultat = $mysqli->query($sql);
    ?>
     
    <table>
            <tr>
                <td><b> Nom <b/></td>
                <td><b> Prenom <b/></td>
                <td><b> Societe <b/></td>
                <td><b> Service <b/></td>
                <td><b> ID <b/></td>
                <td><b> Motif <b/></td>
                <td><b> Entrée <b/></td>
                <td><b> Sortie <b/></td>
                <td><b> Sortie par DCT <b/></td>
            </tr>
     
    <?php      
    while($donnees = mysqli_fetch_assoc($resultat))
        {
    ?>
            <tr>
     
                <td><?php echo $donnees['nom']?> </td>
                <td><?php echo $donnees['prenom']?> </td>
                <td><?php echo $donnees['societe']?> </td>
                <td><?php echo $donnees['service']?> </td>
                <td><?php echo $donnees['id']?> </td>
                <td><?php echo $donnees['motif']?> </td>
                <td><?php echo $donnees['entree']?> </td>
                <td><?php echo $donnees['sortie']?> </td>
                <td align="center"><?php echo $donnees['sortiepardct']?> </td>
     
            </tr>
     
     
    <?php      
    }
    ?>
    Et voici un test fonctionnel avec dompdf

    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
    <?php
     
    $html = "<table border='1' width='100%' style='border-collapse: collapse;'>
            <tr>
                <th>Nom</th>
                <th>Prenom</th>
                <th>Societe</th>
                <th>Service</th>
                <th>ID</th>
                <th>Motif</th>
                <th>Entrée</th>
                <th>Sortie</th>
                <th>Sortie par DCT</th>
            </tr>
     
            <tr>     
                <td>test </td>
                <td>test </td>
                <td>test </td>
                <td>test </td>
                <td>test </td>
                <td>test </td>
                <td>test </td>
                <td>test </td>
                <td>test </td>
            </tr>
     </table>";
     $filename = "newpdffile";
     
    // include autoloader
    require_once 'dompdf/autoload.inc.php';
    // reference the Dompdf namespace
    use Dompdf\Dompdf;
    // instantiate and use the dompdf class
    $dompdf = new Dompdf();
    $dompdf->loadHtml($html);
    // (Optional) Setup the paper size and orientation
    $dompdf->setPaper('A4', 'landscape');
    // Render the HTML as PDF
    $dompdf->render();
    // Output the generated PDF to Browser
    $dompdf->stream($filename,array("Attachment"=>0));
     
    ?>
    Code non fonctionnel:
    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
    <?php
     
    require_once('connexion.php');
     
    if(isset($_POST['date'])) $date=$_POST['date']; else $date="";
    if(isset($_POST['datedeux'])) $datedeux=$_POST['datedeux']; else $datedeux="";
     
    echo "</br>";
    ?>
    <div align = "center"> 
    <h3><?php echo $date; ?></h3>
    </div>
    <?php
    $sql = "SELECT * FROM `registre` WHERE `entree` BETWEEN '".$date." 00:00:00.00' AND '".$datedeux." 23:59:59.999' ORDER BY `entree` ASC";
    $resultat = $mysqli->query($sql);
    ?>
     
    <?php
     
    $html = "<table border='1' width='100%' style='border-collapse: collapse;'>
    		<tr>
    			<td><b> Nom <b/></td>
    			<td><b> Prenom <b/></td>
    			<td><b> Societe <b/></td>
    			<td><b> Service <b/></td>
    			<td><b> ID Disney <b/></td>
    			<td><b> Motif <b/></td>
    			<td><b> Entrée <b/></td>
    			<td><b> Sortie <b/></td>
    			<td><b> Sortie par DCT <b/></td>
    		</tr>
    		
    <?php		
    while($donnees = mysqli_fetch_assoc($resultat)) 
    	{  
    ?>
    		<tr>
    			<td><?php echo $donnees['nom']?> </td>
    			<td><?php echo $donnees['prenom']?> </td>
    			<td><?php echo $donnees['societe']?> </td>
    			<td><?php echo $donnees['service']?> </td>
    			<td><?php echo $donnees['iddisney']?> </td>
    			<td><?php echo $donnees['motif']?> </td>
    			<td><?php echo $donnees['entree']?> </td>
    			<td><?php echo $donnees['sortie']?> </td>
    			<td><?php echo $donnees['sortiepardct']?> </td>
    		</tr>	
     
     
    <?php		
    	} 
    ?>
     
     </table>";
     $filename = "newpdffile";
     
    // include autoloader
    require_once 'dompdf/autoload.inc.php';
    // reference the Dompdf namespace
    use Dompdf\Dompdf;
    // instantiate and use the dompdf class
    $dompdf = new Dompdf();
    $dompdf->loadHtml($html);
    // (Optional) Setup the paper size and orientation
    $dompdf->setPaper('A4', 'landscape');
    // Render the HTML as PDF
    $dompdf->render();
    // Output the generated PDF to Browser
    $dompdf->stream($filename,array("Attachment"=>0));
     
    </body>
    </html>

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Mets les balises PHP aux bons endroits et ça ira mieux.


    N.B. pour les entêtes de tables, il existe <th>.

  3. #3
    Candidat au Club
    Homme Profil pro
    Technicien d'exploitation
    Inscrit en
    Février 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien d'exploitation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 4
    Par défaut
    En effet c'est corrigé pour <th>.
    Au niveau des erreurs balise PHP je ne vois pas où je me suis trompé. Quelqu'un peut m'éclairer à ce sujet?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Utilise la temporisation.

    1- AVANT de construire la table, mets : ob_start()
    2- Entre deux, Reprends ton code de base (le 1er, comme pour afficher la table)

    3- APRES : ob_get_contents()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $html = ob_get_contents();
    Dernière modification par Invité ; 26/02/2018 à 09h01.

  5. #5
    Candidat au Club
    Homme Profil pro
    Technicien d'exploitation
    Inscrit en
    Février 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien d'exploitation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 4
    Par défaut
    Bonjour,

    Merci pour la méthode de la temporisation.
    Cependant je rencontre maintenant un message d'erreur à l'affichage de la page:
    File does not begin with '%PDF-'.
    Local\EWH-10220-22

    Je ne comprends pas du tout ce que veut dire cette erreur via des recherches internet.

    Mon code actuel:
    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
    <?php
     
    require_once('connexion.php');
     
    if(isset($_POST['date'])) $date=$_POST['date']; else $date="";
    if(isset($_POST['datedeux'])) $datedeux=$_POST['datedeux']; else $datedeux="";
     
    echo "</br>";
    ?>
    <div align = "center"> 
    <h3><?php echo $date; ?></h3>
    </div>
    <?php
    $sql = "SELECT * FROM `registre` WHERE `entree` BETWEEN '".$date." 00:00:00.00' AND '".$datedeux." 23:59:59.999' ORDER BY `entree` ASC";
    $resultat = $mysqli->query($sql);
    ?>
     
    <?php
    ob_start();
    ?>
    <table border='1' width='100%' style='border-collapse: collapse;'>
    		<tr>
    			<th><b> Nom <b/></th>
    			<th><b> Prenom <b/></th>
    			<th><b> Societe <b/></th>
    			<th><b> Service <b/></th>
    			<th><b> ID Disney <b/></th>
    			<th><b> Motif <b/></th>
    			<th><b> Entrée <b/></th>
    			<th><b> Sortie <b/></th>
    			<th><b> Sortie par DCT <b/></th>
    		</tr>
     
    <?php		
    while($donnees = mysqli_fetch_assoc($resultat)) 
    	{  
    ?>
    		<tr>
    			<td><?php echo $donnees['nom']?> </td>
    			<td><?php echo $donnees['prenom']?> </td>
    			<td><?php echo $donnees['societe']?> </td>
    			<td><?php echo $donnees['service']?> </td>
    			<td><?php echo $donnees['iddisney']?> </td>
    			<td><?php echo $donnees['motif']?> </td>
    			<td><?php echo $donnees['entree']?> </td>
    			<td><?php echo $donnees['sortie']?> </td>
    			<td><?php echo $donnees['sortiepardct']?> </td>
    		</tr>	
     
     
    <?php		
    	} 
    ?>
     
    </table>
    <?php
    $html = ob_get_contents();
    $filename = "newpdffile";
     
    // include autoloader
    require_once 'dompdf/autoload.inc.php';
    // reference the Dompdf namespace
    use Dompdf\Dompdf;
    // instantiate and use the dompdf class
    $dompdf = new Dompdf();
    $dompdf->loadHtml($html);
    // (Optional) Setup the paper size and orientation
    $dompdf->setPaper('A4', 'landscape');
    // Render the HTML as PDF
    $dompdf->render();
    // Output the generated PDF to Browser
    $dompdf->stream($filename,array("Attachment"=>0));
     
     
     ?>
    </body>
    </html>

  6. #6
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 60
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT * FROM `registre` WHERE `entree` BETWEEN '".$date." 00:00:00.00' AND '".$datedeux." 23:59:59.999' ORDER BY `entree` ASC";
    Tu as vérifié cette requête dans ton phpmyadmin ? Ca me paraît bizarre.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $sql='SELECT * FROM `registre` WHERE `entree` BETWEEN concat("/"",'.$date.'," 00:00:00","/"") AND concat("/"",'.$datedeux.'," 23:59:59","/"") ORDER BY `entree` ASC;'
    echo $sql;
    Tu veux transformer un date en datetime, fais plutôt ça... Teste le résultat dans ton phpmyadmin.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

Discussions similaires

  1. [FPDF] Exporter résultat en PDF mais sous forme de tableau
    Par Luverger dans le forum Bibliothèques et frameworks
    Réponses: 13
    Dernier message: 09/03/2007, 13h13
  2. copier un tableau de valeur depuis un pdf
    Par gabvba dans le forum Général VBA
    Réponses: 5
    Dernier message: 03/03/2007, 17h47
  3. [FPDF] Tableau sur document PDF
    Par pollux75012 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 09/02/2007, 19h01
  4. Probleme récupération d'un pdf sous forme d'un tableau de byte
    Par wallyfr dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 31/08/2006, 17h10
  5. [Info]Exportation automatique de tableau en *.pdf ou *.doc
    Par demifred dans le forum Documents
    Réponses: 3
    Dernier message: 12/08/2005, 09h06

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