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] Code interprété d'une page pour creation pdf


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 126
    Par défaut [FPDF] Code interprété d'une page pour creation pdf
    Bonjour,
    Voila je souhaite en cliquant sur un bouton générer l'équivalent
    de la page en cours en pdf et l'ouvrir.
    Le probleme est que ma page courante est dynamique. C'est du php.
    Du coup, je cherche une fonction me permettant de récupérer
    le code interprété côté client (html pur ou avec du javascript).
    pour l'envoyer à ma fonction de creation de pdf...
    Voila ou j'en suit. Et mon code...
    La pager d'appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    $URL  = $_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
    $URL .= ($_SERVER['QUERY_STRING']!='')? '?' : '';
    $URL .= $_SERVER['QUERY_STRING'];
    ?>
    <a href="fpdf.phtml?page=<?php echo $URL?>" target="_new">PDF</a>
    et la fonction...
    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
     
    <? 
    require("html2fpdf.php"); 
    $htmlFile = $_GET["page"]; 
    $file = fopen($htmlFile,"r"); 
    $size_of_file = filesize($htmlFile); 
    $buffer = fread($file, $size_of_file); 
    fclose($file); 
    $pdf=new HTML2FPDF(); 
    $pdf->AddPage(); 
    //Code below used only if you want relative links to be understood 
    //$pdf->setBasePath(dirname(__FILE__)."\".$htmlFile);//insert full path where html is 
    $pdf->WriteHTML($buffer); 
    $pdf->Output(); 
    ?>
    Je pense que ça marcherait avec une url en .html mais la ça me met une page blanche...

  2. #2
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Salut,
    justement tu devrais essayer avec un .htm pour être sûr (+ vérifier avec php_info()), si ca ne fonctionne pas y a de grandes chances que la safe_mode soit activé (allow_url_fopen à false) et que tu ne puisses donc pas utiliser le protocole http avec fopen(), auquel cas tu pourrais utiliser les fonction de buffer de sortie, ob_sart(), ob_get_content() etc pour mettre toute ta page dans une variable. D'autre part ton code est pas trop sécurisé, il suffit de balancer n'importe quel url pour générer un pdf depuis ton serveur (raison de plus pour utiliser ces fonctions).
    Bye

    [edit]Si tu utilises fopen() sur une page php sans passer par le protocole http elle sera pas interprétée et t'auras donc le source dans ton pdf[/edit]

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 126
    Par défaut
    Merci pour tes réponses sur la question, je ne connaissais pas ces balises.
    Du coup je galère un peu à les utiliser. J'essai ce que tu as dit, de passer en paramètre le contenu de la page mais ça bloque. Sinon avec un fichier html pure, ça marche bien...
    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
    <body>
    <body>
    <?php
    ob_start();
    ob_implicit_flush(0);
     
    ///////ICI se trouve l'ensemble de ma page
     
    $contenu=ob_get_contents();
    ?>
    <a href="fpdf.phtml?cont=<?php $contenu; ?>" target="_new">PDF</a>
    <?php
    ob_end_flush();
    ?>
    </body>
    Et il ne passe rien en paramètre.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 126
    Par défaut
    en fait il y avait un pb de guillemet, classique.
    j'arrive à renvoyer à la page suivante le contenu
    interprété de la page(pure html) mais mon script de l'autre coté
    me renvoie une fin d'instruction avec un message sur les entete et cgi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php 
    require("html2fpdf.php"); 
    $contenu=$_GET["cont"];
    $contenu = str_replace('AAAABBBBCCCCDDDD','"',$contenu);
    $contenu = '<html><head></head><body>'.$contenu.'</body></html>';
    $pdf=new HTML2FPDF(); 
    $pdf->AddPage(); 
    $pdf->WriteHTML($contenu); 
    $pdf->Output(); 
    ?>
    me renvoie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Erreur CGI
    L'application CGI spécifiée a mal fonctionné en ne renvoyant pas de jeu complet d'en-têtes HTTP. Les en-têtes renvoyés sont :

  5. #5
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    En fait je pensais plus à un truc du style :

    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
    <?php
    if(isset($_GET['sendpdf']) && $_GET['sendpdf'] == 'ok') {
    $sendPdf = true;
    ob_start();
    }
     
    ?>
    <html>
    <head>
    </head>
    <body>
    <?php echo 'blablabla'; ?>
    </body>
    </html>
    <?php
    if(isset($sendPdf)) {
    // Tout ca peut aller dans une fonction vu que tu vas le mettre sur toutes les pages
    require("html2fpdf.php"); 
    $contenu=ob_get_flush(); // récup le tampon et stoppe la bufferisation
    $pdf=new HTML2FPDF(); 
    $pdf->AddPage(); 
    $pdf->WriteHTML($contenu); 
    $pdf->Output();
     
    }
    else {
    echo '<a href="'.$_SERVER['PHP_SELF'].'?sendpdf=ok">PDF</a>';
    }
    ?>
    Y a une taille limite aux paramètre passés en GET, donc ta méthode peut poser problème.
    En fait $pdf->Output(); c'est pour envoyer le pdf au nav en téléchargement ou pour l'afficher dans le navigateur ? C'est quoi au fait ta lib HTML2PDF ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 126
    Par défaut
    merci
    je vais essayer ça,
    sinon la librairie je l'ai trouvée sur internet, elle
    est spécialement faite pour convertir du html
    en pdf je crois...

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

Discussions similaires

  1. Insérer un code xml dans une page html sans interprétation
    Par solenne74 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 01/07/2011, 14h56
  2. Réponses: 7
    Dernier message: 02/11/2010, 13h36
  3. [FLASH MX2004 PRO] Recuperer le code source d'une page
    Par adilou1981 dans le forum Flash
    Réponses: 9
    Dernier message: 26/07/2005, 18h11
  4. Récupérer le code source d'une page web
    Par glRaZ dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/12/2004, 09h16
  5. Récupérer le code HTML d'une page avec Delphi 7
    Par PsyKroPack dans le forum Web & réseau
    Réponses: 5
    Dernier message: 06/02/2003, 21h56

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