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] Saut de pages dans un pdf avec dompdf


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [PDF] Saut de pages dans un pdf avec dompdf
    Bonjour,

    J'ai un gros soucis que je ne parviens pas à résoudre.

    Je ne parviens pas à générer un pdf de plus de une page

    Je vous explique :


    J'ai fait un petit module de recherche qui permet de récupérer une liste d'application. Le coté recherche dans la base de donnée s'exécute bien de même que l'affichage (HTML et CSS).

    Maintenant je voudrais exporter ce tableau dans un fichier PDF.

    Pour cela j'utilise dompdf 0.5.2 (dernière version valide, la 0.6 est une beta) car dompdf permet de créer un pdf à partir d'une page HTML (passé en variable) et le rendu est plutôt bon.

    Mon souci c'est que si j'ai un résultat supérieur à 10 applications, ce qui correspond à une page PDF, le PDF ne se génère pas et j'ai une jolie erreur de dompdf.

    L'erreur provient du fait qu'il essai de rentrer un tableau trop gros dans une seule page, ce qui naturellement n'est pas possible. Et je n'ai trouvé aucun moyen de faire en sorte que dompdf me fasse des pdf de plusieurs pages afin d'y rentrer toutes les lignes de mon tableau

    Voici mon code php pour la génération du 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
    <?php
     
    require_once '../lib/dompdf-0.5.2/dompdf_config.inc.php';
     
    // Fonction qui génére le PDF
    // Paramètre : la page HTML à convertir en PDF
    function GenPDF($pageHtml){
     
        // Créer un nouveau PDF
        $dompdf = new DOMPDF();
     
        // Définit la composition des pages, ici les pages seront en portrait
        $dompdf->set_paper('legal', 'landscape');
     
        // Charge la page HTML
        $dompdf->load_html(str_replace('Contacts','',$pageHtml));
     
        // Créer le PDF à partir de la page HTML chargée
        $dompdf->render();
     
        // Propose à l'utilisateur d'afficher ou d'enregistrer le PDF
        $dompdf->stream("liste_applications.pdf");
     
    }
    GenPDF(urldecode($_POST['pdf']));
    ?>

    Et voici le petit bout de code qui envoi la variable contenant la page HTML par un formulaire :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <!-- Formulaire avec en champ caché la variable contenant la page HTML encodé afin d'éviter les problèmes de cotes -->
    <div>
        <form action="gen_pdf.php" method="post">
                    <input type="hidden" name="pdf" value=<?php echo urlencode($pageHtml); ?>/>
                    <input src="../images/icon_pdf.png" type=image value=submit align="top-right"/>
        </form>
    </div>

    Je ne parviens pas à faire des PDF de plusieurs pages, je n'ai pas réussi à utiliser les saut de pages en css : page-break-after et before (je les ai peut être mal utilisé ) et je n'ai pas trouvé de fonction dompdf le faisant (je pensait que ça le ferait automatiquement).

    Je vous serez très reconnaissant de pouvoir m'aider sur ce coup là car je bloque vraiment.

    Merci par avance

  2. #2
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Salut,

    As tu testé que le rendu de ta page est bonne à la réception ?

    Tu peux tester avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo str_replace( 'Contacts', '', $pageHtml );
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour, finalement j'ai réglé mon problème.

    Pour ce faire j'ai abandonné dompdf pour utilisé fpdf, j'ai donc créer à la main mon tableau dans mon pdf.

    Merci quand même

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

Discussions similaires

  1. [Débutant] Parametre pour export PDF (saut de page dans tableau)
    Par Linconnu dans le forum ASP.NET
    Réponses: 0
    Dernier message: 15/01/2014, 23h16
  2. [WD-2003] Saut de page dans un tableau avec répétition des entetes
    Par shawn12 dans le forum VBA Word
    Réponses: 3
    Dernier message: 27/08/2010, 01h00
  3. VBA : Insertion d'un saut de page dans WORD
    Par Actarus69 dans le forum VBA Word
    Réponses: 1
    Dernier message: 25/04/2006, 13h05
  4. Réponses: 12
    Dernier message: 06/01/2006, 07h44
  5. Saut de page dans un état
    Par rangernoir dans le forum Access
    Réponses: 1
    Dernier message: 19/09/2005, 09h35

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