56 votes

comment enregistrer le contenu généré par DOMPDF dans un fichier ?

J'utilise Dompdf pour créer un fichier PDF mais je ne sais pas pourquoi il n'enregistre pas le PDF créé sur le serveur.

Des idées?

 require_once("./pdf/dompdf_config.inc.php");
    $html =
      '<html><body>'.
      '<p>Put your html here, or generate it with your favourite '.
      'templating system.</p>'.
      '</body></html>';

    $dompdf = new DOMPDF();
    $dompdf->load_html($html);
    $dompdf->render();
    file_put_contents('Brochure.pdf', $dompdf->output());

103voto

startupsmith Points 1888

Je viens d'utiliser dompdf et le code était un peu différent mais cela a fonctionné.

C'est ici:

 require_once("./pdf/dompdf_config.inc.php");
$files = glob("./pdf/include/*.php");
foreach($files as $file) include_once($file);

$html =
      '<html><body>'.
      '<p>Put your html here, or generate it with your favourite '.
      'templating system.</p>'.
      '</body></html>';

    $dompdf = new DOMPDF();
    $dompdf->load_html($html);
    $dompdf->render();
    $output = $dompdf->output();
    file_put_contents('Brochure.pdf', $output);

La seule différence ici est que tous les fichiers du répertoire d'inclusion sont inclus.

En dehors de cela, ma seule suggestion serait de spécifier un chemin de répertoire complet pour écrire le fichier plutôt que simplement le nom du fichier.

2voto

Charlie H Points 2538

J'ai testé votre code et le seul problème que j'ai pu voir était le manque d'autorisation donnée au répertoire dans lequel vous essayez d'écrire le fichier.

Donnez l'autorisation « écrire » au répertoire dont vous avez besoin pour mettre le fichier. Dans votre cas, il s'agit du répertoire courant.

Utilisez "chmod" sous Linux.

Ajoutez "Tout le monde" avec "écrire" activé dans l'onglet sécurité du répertoire si vous êtes sous Windows.

-5voto

Nadim Sheikh Points 7
<?php
$content='<table width="100%" border="1">';
$content.='<tr><th>name</th><th>email</th><th>contact</th><th>address</th><th>city</th><th>country</th><th>postcode</th></tr>';
for ($index = 0; $index < 10; $index++) { 
$content.='<tr><td>nadim</td><td>nadim.sheikh.07@gmail.com</td><td>7737033665</td><td>247 dehligate</td><td>udaipur</td><td>india</td><td>313001</td></tr>';
}
$content.='</table>';
//$html = file_get_contents('pdf.php');
if(isset($_POST['pdf'])){
    require_once('./dompdf/dompdf_config.inc.php');
    $dompdf = new DOMPDF;                        
    $dompdf->load_html($content);
    $dompdf->render();
    $dompdf->stream("hello.pdf");
}
?>
<html>
    <body>
        <form action="#" method="post">        
            <button name="pdf" type="submit">export</button>
        <table width="100%" border="1">
           <tr><th>name</th><th>email</th><th>contact</th><th>address</th><th>city</th><th>country</th><th>postcode</th></tr>         
            <?php for ($index = 0; $index < 10; $index++) { ?>
            <tr><td>nadim</td><td>nadim.sheikh.07@gmail.com</td><td>7737033665</td><td>247 dehligate</td><td>udaipur</td><td>india</td><td>313001</td></tr>
            <?php } ?>            
        </table>        
        </form>        
    </body>
</html>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X