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í].<br> |
− | + | 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.<br> | |
− | 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.<br> |
− | + | Lo primero que haremos es cargar la librería MPDF a través de composer.<br> | |
− | |||
− | |||
− | Lo primero que haremos es | ||
<source lang="php"> | <source lang="php"> | ||
Línea 14: | Línea 11: | ||
== Nuestro Controlador == | == Nuestro Controlador == | ||
− | Aquí crearemos una nueva vista, la cual será llamada cada vez que deseamos exportar nuestro documento. | + | Aquí crearemos una nueva vista, la cual será llamada cada vez que deseamos exportar nuestro documento, yo recibiré el mensaje a mostrar a través de la variable '''$mensaje.''' |
<source lang="php"> | <source lang="php"> | ||
class TestController extends AppController { | class TestController extends AppController { | ||
− | public function export() { | + | public function export($mensaje) { |
− | + | //No mostramos template, como tampoco vista. | |
View::select(null, null); | View::select(null, null); | ||
− | + | //llamamos al metodo estatico export de nuestro modelo Pdfreports pasando un titulo y un mensaje | |
− | + | Pdfreports::export('Kumbieros',$mensaje); | |
} | } | ||
} | } | ||
</source> | </source> | ||
+ | == La Vista == | ||
− | + | Ahora crearemos nuestra vista, que tendrá la estructura de nuestro PDF, creamos el archivo en '''default/app/views/_shared/partials/reports/test/pdf.phtml''' | |
− | |||
− | Ahora crearemos | ||
<source lang="html5"> | <source lang="html5"> | ||
<html lang="es"> | <html lang="es"> | ||
Línea 41: | Línea 37: | ||
<body> | <body> | ||
<div class="text-center"> | <div class="text-center"> | ||
− | |||
<h3><?php echo $titulo ?></h3> | <h3><?php echo $titulo ?></h3> | ||
</div> | </div> | ||
Línea 51: | Línea 46: | ||
</body> | </body> | ||
</html> | </html> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</source> | </source> | ||
== Modelo == | == Modelo == | ||
− | Ahora crearemos nuestro modelo | + | Ahora crearemos nuestro modelo pdfreports.php en '''default/app/models.'''<br> |
+ | 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 Pdfreports { |
− | + | //Declaramos nuestro header y footer como propiedades estaticas | |
− | + | private static $header_html = ' | |
− | + | <table width="100%"> | |
− | + | <tr> | |
− | + | <td width="50%" align="left"><img src="http://wiki.kumbiaphp.com/images/wikibanner.png"></td> | |
− | + | <td width="50%" align="right">Tutorial Encabezados y pie de Pagína</td> | |
− | + | </tr> | |
+ | </table><hr> | ||
+ | '; | ||
+ | private static $footer_html = "KumbiaPHP es un framework para aplicaciones web libre escrito en PHP."; | ||
− | + | public static function export($titulo, $mensaje) { | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | public static function export($titulo) { | ||
// Se crea la instancia de la Clase y directorio temporal | // Se crea la instancia de la Clase y directorio temporal | ||
Línea 103: | Línea 80: | ||
$mpdf->setAutoTopMargin = 'stretch'; | $mpdf->setAutoTopMargin = 'stretch'; | ||
//establezco el HTML al header | //establezco el HTML al header | ||
− | $mpdf->SetHTMLHeader(self:: | + | $mpdf->SetHTMLHeader(self::$header_html); |
//contenido de la vista alojada en el partials | //contenido de la vista alojada en el partials | ||
ob_start(); | ob_start(); | ||
− | View::partial('reports/test/pdf', false, array('titulo' => $titulo)); | + | View::partial('reports/test/pdf', false, array('titulo' => $titulo, 'mensaje' => $mensaje)); |
// 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(); | ||
Línea 113: | Línea 90: | ||
//agrego el footer de pagina y esta | //agrego el footer de pagina y esta | ||
$mpdf->setAutoBottomMargin = 'stretch'; | $mpdf->setAutoBottomMargin = 'stretch'; | ||
− | $mpdf->SetHTMLFooter(self:: | + | $mpdf->SetHTMLFooter(self::$footer_html); |
// Agrego el contenido del Partials al HTML | // Agrego el contenido del Partials al HTML | ||
Línea 124: | Línea 101: | ||
} | } | ||
</source> | </source> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |