Usuario:ManuelRomero/ProgramacionWeb/php/Dompdf/conceptosdompdf

De WikiEducator
< Usuario:ManuelRomero‎ | ProgramacionWeb/php
Revisión a fecha de 21:16 18 feb 2020; ManuelRomero (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

DomPDF

  • Herramienta que me va a permitir pasar una página html a pdf aplicando los estilos
  • Lo pero de esta herramienta es la escasa documentación de la API, teniendo que ir muchas veces a los ficheros fuentes para ver los métodos disponibles y su utilidad


Icon activity.jpg
Instalación
Via composer.json (Versión actual 0.8.
{ 
  "require": {
    "dompdf/dompdf": "^0.8",
 }
}





Icon activity.jpg
Uso básico
  • Creamos una página html con css de la que queremos generar su pdf
// Load HTML content
$dompdf->loadHtml('<h1>Welcome to CodexWorld.com</h1>');
 
// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');
 
// Render the HTML as PDF
$dompdf->render();
 
// Output the generated PDF to Browser
$dompdf->stream("descarga.pdf");



Usar Dompdf con Smarty

  • En el caso de unar un gestor de plantillas, necesitamos tener el html que queremos renderizar a un fichero pdf.
  • En smarty disponemos del método fetch() para poder obtener el html de la plantilla tpl.
Icon present.gif
Tip: No olvidar de aportar valores a las variables que necesite para la plantilla


  • Ejemplo
//...
use Dompdf/Dompdf;
//...
    $dompdf = new Dompdf();
 
 
        $html = $smarty->fetch('pagar.tpl');
 
        //Creamos el fichero de forma física  en nuestro sistema de ficheros
//llamado  /tmp/dompdf_  con el contenido del html de la plantilla fecht anteriormente
 
        $tmpfile = tempnam("/tmp", "dompdf_");
        file_put_contents($tmpfile, $html);
 
 
 
        $dompdf->loadHtml($html);
 
// (Optional) Setup the paper size and orientation
        $dompdf->setPaper('A4', 'landscape');
 
// Render the HTML as PDF
        $dompdf->render();
 
// Output the generated PDF to Browser
        $dompdf->stream("factura.pdf");