2012-01-04 77 views
37

Estoy usando Dompdf para crear un archivo PDF, pero no sé por qué no guarda el PDF creado en el servidor.cómo guardar el contenido generado por DOMPDF en un archivo?

¿Alguna idea?

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()); 
+0

Versión de dompdf? Cualquier error de PHP? – BrianS

+0

dompdf 0.5.2, php 5.2.13 – user1079810

+0

No veo nada que pueda impedir el guardado, así que supongo que habrá un error de configuración del servidor. Quizás PHP no puede escribir en ese directorio? Si ese es el caso, PHP informará un error. Verifique su registro de errores de PHP o habilite la visualización de errores. – BrianS

Respuesta

58

Acabo de utilizar dompdf y el código era un poco diferente, pero funcionó.

Aquí está:

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); 

única diferencia aquí es que todos los archivos en el directorio incluirá están incluidos.

Aparte de eso, mi única sugerencia sería especificar una ruta completa de directorio para escribir el archivo en lugar de solo el nombre del archivo.

1

Probé tu código y el único problema que pude ver fue la falta de permiso otorgado al directorio donde intentas escribir el archivo.

Dar permiso de "escritura" al directorio que necesita para poner el archivo. En tu caso, es el directorio actual.

Utilice "chmod" en linux.

Agregue "Todos" con "escritura" activada en la pestaña de seguridad del directorio si se encuentra en Windows.

-2
<?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>[email protected]</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>[email protected]</td><td>7737033665</td><td>247 dehligate</td><td>udaipur</td><td>india</td><td>313001</td></tr> 
      <?php } ?>    
     </table>   
     </form>   
    </body> 
</html> 
Cuestiones relacionadas