Soutenez-nous
Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Invité de passage
    Inscrit en
    avril 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : avril 2012
    Messages : 2
    Points : 0
    Points
    0

    Par défaut 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 :
    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 :
    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
    Rédacteur/Modérateur
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    décembre 2006
    Messages
    2 353
    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 353
    Points : 4 363
    Points
    4 363

    Par défaut

    Salut,

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

    Tu peux tester avec :

    Code :
    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
    Invité de passage
    Inscrit en
    avril 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : avril 2012
    Messages : 2
    Points : 0
    Points
    0

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •