Edición de «Exportar a PDF con cabecera y pie de pagina»
De KumbiaPHP Framework Wiki
Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.
Revisión actual | Tu texto | ||
Línea 1: | Línea 1: | ||
− | Esta es una contribución inspirada en el excelente tutorial de Henrystivens, que puedes encontrar | + | Esta es una contribución inspirada en el excelente tutorial de Henrystivens, que puedes encontrar [https://www.kumbiaphp.com/blog/2018/08/06/crear-pdf-usando-html/#more-1915 Aquí]. |
− | + | Quiero complementar agregando un encabezado y un pie de página que se repetirá cada vez que se generen más de una página en el documento. | |
− | Quiero complementar agregando un encabezado y un pie de página que se repetirá cada vez. Sin más preámbulo comencemos. | + | Sin más preámbulo comencemos. |
− | + | Lo primero que haremos es cargar la librería MPDF a través de composer. | |
− | |||
− | |||
− | Lo primero que haremos es | ||
<source lang="php"> | <source lang="php"> | ||
Línea 11: | Línea 8: | ||
</source> | </source> | ||
+ | Ahora crearemos nuestro modelo en default/app/models con el nombre que creamos conveniente. Yo lo nombrare reports | ||
+ | Hacemos referencia a nuestro autoload.php de la siguiente forma en nuestro modelo | ||
− | |||
− | |||
− | |||
<source lang="php"> | <source lang="php"> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | require_once ROOT_PATH . 'vendor/autoload.php'; | |
use Mpdf\Mpdf; | use Mpdf\Mpdf; | ||
− | class | + | class Reports { |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | private static $header_html=""; | |
− | + | private static $footer_html=""; | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | public static function | + | public static function budgets($budgets, $type) { |
// Se crea la instancia de la Clase y directorio temporal | // Se crea la instancia de la Clase y directorio temporal | ||
$mpdf = new Mpdf(['tempDir' => APP_PATH . '/temp']); | $mpdf = new Mpdf(['tempDir' => APP_PATH . '/temp']); | ||
− | // | + | //Agrego el header a los documentos |
$mpdf->setAutoTopMargin = 'stretch'; | $mpdf->setAutoTopMargin = 'stretch'; | ||
− | + | $mpdf->SetHTMLHeader(self::$header_html); | |
− | $mpdf->SetHTMLHeader(self:: | ||
//contenido de la vista alojada en el partials | //contenido de la vista alojada en el partials | ||
ob_start(); | ob_start(); | ||
− | View::partial('reports | + | View::partial('reports/pdf'); |
// Obtiene en $html el contenido del búfer actual y elimina el búfer de salida actual | // Obtiene en $html el contenido del búfer actual y elimina el búfer de salida actual | ||
$html = ob_get_clean(); | $html = ob_get_clean(); | ||
− | //agrego el footer de pagina | + | //agrego el footer de pagina |
$mpdf->setAutoBottomMargin = 'stretch'; | $mpdf->setAutoBottomMargin = 'stretch'; | ||
− | $mpdf->SetHTMLFooter(self:: | + | $mpdf->SetHTMLFooter(self::$footer_html); |
+ | // Escribe algo de contenido HTML: | ||
+ | $mpdf->WriteHTML($html); | ||
− | |||
− | |||
− | // Envia un archivo PDF al navegador | + | // Envia un archivo PDF directamente al navegador |
$mpdf->Output('mipdf.pdf', \Mpdf\Output\Destination::DOWNLOAD); | $mpdf->Output('mipdf.pdf', \Mpdf\Output\Destination::DOWNLOAD); | ||
} | } | ||
Línea 124: | Línea 50: | ||
} | } | ||
</source> | </source> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |