<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>pdf archivos - KumbiaPHP Framework PHP en español</title>
	<atom:link href="https://kumbiaphp.com/blog/tag/pdf/feed/" rel="self" type="application/rss+xml" />
	<link>https://kumbiaphp.com/blog/tag/pdf/</link>
	<description>Web &#38; app MVC PHP framework</description>
	<lastBuildDate>Fri, 27 Jan 2023 20:05:56 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>

<image>
	<url>https://kumbiaphp.com/blog/wp-content/uploads/2016/01/250-150x150.png</url>
	<title>pdf archivos - KumbiaPHP Framework PHP en español</title>
	<link>https://kumbiaphp.com/blog/tag/pdf/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">123854898</site>	<item>
		<title>Exportar tabla HTML a PDF</title>
		<link>https://kumbiaphp.com/blog/2019/04/29/exportar-tabla-html-a-pdf/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=exportar-tabla-html-a-pdf</link>
					<comments>https://kumbiaphp.com/blog/2019/04/29/exportar-tabla-html-a-pdf/#respond</comments>
		
		<dc:creator><![CDATA[HenryStivens]]></dc:creator>
		<pubDate>Sun, 28 Apr 2019 23:29:56 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutoriales y screencast]]></category>
		<category><![CDATA[ejemplos]]></category>
		<category><![CDATA[mpdf]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[template]]></category>
		<guid isPermaLink="false">https://www.kumbiaphp.com/blog/?p=2078</guid>

					<description><![CDATA[<p>En esta segunda parte veremos como exportar una tabla HTML a PDF usando la librería mPDF. Si no has&#8230;</p>
<p>La entrada <a href="https://kumbiaphp.com/blog/2019/04/29/exportar-tabla-html-a-pdf/">Exportar tabla HTML a PDF</a> se publicó primero en <a href="https://kumbiaphp.com/blog">KumbiaPHP Framework PHP en español</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>En esta segunda parte veremos como exportar una tabla HTML a PDF usando la librería mPDF. Si no has visto la primera parte este es el primer artículo: <a href="https://www.kumbiaphp.com/blog/2018/08/06/crear-pdf-usando-html/">Crear PDF usando HTML</a> donde aprendimos a crear un PDF usando partials y funciones en un modelo.</p>



<p>[Actualización: Abril 2020] Hemos creado un nuevo repositorio llamado <a rel="noreferrer noopener" href="https://github.com/KumbiaPHP/Sandbox/" target="_blank">Sandbox en Github</a>  donde van a estar todos los ejemplos y que podrán visualizar en vivo en la página <a rel="noreferrer noopener" href="https://sandbox.kumbiaphp.com/" target="_blank">KumbiaPHP Framework Examples</a> por lo tanto el código se ha mejorado y los links han cambiado.</p>



<h2 class="wp-block-heading">Template PDF</h2>



<p>Un template permite ahorrar código que se repite en la vistas, permitiendo así un fácil mantenimiento y separación del contenido. Realizará la carga de librería, la cabecera y el pié de página y por supuesto el contenido que queremos mostrar.</p>



<p>Para los que aun no han visto el tema de templates en KumbiaPHP o tienen dudas de su funcionamiento los invito a leer la sección sobre el <a href="https://github.com/KumbiaPHP/Documentation/blob/master/es/view.md">manejo de vistas en KumbiapHP.</a> A continuación el código completo del template y más abajo con capturas se explica cada parte importante.</p>



<span id="more-2078"></span>



<p>Archivo: <em>app/views/_shared/templates/pdf/mpdf.phtml</em></p>



<pre class="wp-block-code language-php"><code>&lt;?php

use Mpdf\Mpdf;

/* Defaults */

// fileName
$fileName = $filename ?? &quot;Reporte-de-$controller_name&quot;;

// Title
$title = $title ?? &quot;Reporte de $controller_name&quot;;

// CSS
$css = $css ?? &#039;css/pdf.css&#039;;

// Destination I show in browser  D download
$destination = isset($download) &amp;&amp; $download ? &#039;D&#039; : &#039;I&#039;;

//Activa el almacenamiento en búfer de la salida
ob_start();

?&gt;
&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;

&lt;head&gt;
    &lt;title&gt;&lt;?= $title ?&gt;&lt;/title&gt;
    &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;&lt;?= $css ?&gt;&quot;&gt;
    &lt;meta name=&quot;author&quot; content=&quot;KumbiaPHP framework&quot;&gt;
    &lt;meta name=&quot;description&quot; content=&quot;PDF output example with KumbiaPHP framework&quot;&gt;
    &lt;meta name=&quot;keywords&quot; content=&quot;kumbiaphp, php, pdf, mpdf, examples&quot;&gt;

&lt;body&gt;
    &lt;htmlpageheader name=&quot;myHeader1&quot;&gt;
        &lt;section id=&quot;page-header&quot;&gt;
            &lt;a href=&quot;https://www.kumbiaphp.com&quot;&gt;&lt;img src=&quot;img/kumbiaphp.svg&quot; alt=&quot;Logo KumbiaPHP&quot;&gt;&lt;/a&gt;
            &lt;p&gt;Powered by&lt;/p&gt;
        &lt;/section&gt;
    &lt;/htmlpageheader&gt;

    &lt;?php View::content() ?&gt;

    &lt;htmlpagefooter name=&quot;myFooter1&quot;&gt;
        &lt;section id=&quot;page-footer&quot;&gt;
            &lt;div id=&quot;printed-date&quot;&gt;{DATE d/m/Y}&lt;/div&gt;
            &lt;div id=&quot;page-number&quot;&gt;{PAGENO}/{nbpg}&lt;/div&gt;
        &lt;/section&gt;
    &lt;/htmlpagefooter&gt;
&lt;/body&gt;

&lt;/html&gt;
&lt;?php
$html = ob_get_clean();
ob_clean();

// Crea una instancia de la clase y le pasa el directorio temporal
$mpdf = new Mpdf(&#091;
    &#039;tempDir&#039; =&gt; APP_PATH . &#039;temp/mpdf&#039;,
    &#039;format&#039; =&gt; &#039;A4&#039;,
    &#039;title2annots&#039; =&gt; true,  // convert headers &lt;hx&gt; in annotations
    &#039;mirrorMargins&#039; =&gt; 0,    // mirror the left and right margin values on odd and even pages 
    &#039;exposeVersion&#039; =&gt; false // security 
    // more variables in https://mpdf.github.io/reference/mpdf-variables/overview.html
]);

// Escribe el contenido HTML (Template + View):
$mpdf-&gt;WriteHTML($html);

// Genera el PDF, ya sea para su descarga o visualización en el navegador
$mpdf-&gt;Output(&quot;$fileName.pdf&quot;, $destination);
</code></pre>



<p>El proyecto ya usa el autoload de composer para tener disponible mPDF y simplemente importa <em>Mpdf\Mpdf</em>. Luego se definen algunas variables para personalizar el PDF y se ejecuta la función <a href="https://www.php.net/manual/es/function.ob-start.php">ob_start()</a>. «Esta función activará el almacenamiento en búfer de la salida. Mientras dicho almacenamiento esté activo, no se enviará ninguna salida desde el script (aparte de cabeceras); en su lugar la salida se almacenará en un búfer interno.»</p>



<p>Si desean conocer como agregar encabezados y pies de páginas con mPDF un compañero realizó un manual en la Wiki de KumbiaPHP que muestra como agregarlos usando las funciones explicadas en el artículo anterior: <a href="http://wiki.kumbiaphp.com/Exportar_a_PDF_con_cabecera_y_pie_de_pagina">Exportar a PDF con cabecera y pie de pagina</a></p>



<p>Ahora en el <em>&lt;body&gt;</em> definimos el contenido de la cabecera y el pie de página, y entre ellos la función <em><a href="https://github.com/KumbiaPHP/Documentation/blob/master/es/view.md#buffer-de-salida">View::content()</a></em> que nos permite mostrar el contenido de la vista.</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="442" src="https://www.kumbiaphp.com/blog/wp-content/uploads/2020/04/template-pdf-body-html-1024x442.png" alt="" class="wp-image-2401" srcset="https://kumbiaphp.com/blog/wp-content/uploads/2020/04/template-pdf-body-html-1024x442.png 1024w, https://kumbiaphp.com/blog/wp-content/uploads/2020/04/template-pdf-body-html-300x130.png 300w, https://kumbiaphp.com/blog/wp-content/uploads/2020/04/template-pdf-body-html-768x332.png 768w, https://kumbiaphp.com/blog/wp-content/uploads/2020/04/template-pdf-body-html-940x406.png 940w, https://kumbiaphp.com/blog/wp-content/uploads/2020/04/template-pdf-body-html.png 1111w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Contenido del Body</figcaption></figure>



<p>mPDF maneja sus propias etiquetas, van entre llaves {} y usamos algunas de ellas:</p>



<ul class="wp-block-list"><li>DATE: Para mostrar la fecha actual</li><li>PAGENO: Número de la página</li><li>nbpg: Número total de páginas del documento</li></ul>



<p>Y la parte final del template es la que se encarga de unir el template con la vista, generar el PDF con ese contenido y hacer que el documento se visualice o descargue.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1021" height="541" src="https://www.kumbiaphp.com/blog/wp-content/uploads/2020/04/template-pdf-generate.png" alt="" class="wp-image-2402" srcset="https://kumbiaphp.com/blog/wp-content/uploads/2020/04/template-pdf-generate.png 1021w, https://kumbiaphp.com/blog/wp-content/uploads/2020/04/template-pdf-generate-300x159.png 300w, https://kumbiaphp.com/blog/wp-content/uploads/2020/04/template-pdf-generate-768x407.png 768w, https://kumbiaphp.com/blog/wp-content/uploads/2020/04/template-pdf-generate-940x498.png 940w" sizes="(max-width: 1021px) 100vw, 1021px" /><figcaption>General el PDF con el contenido HTML</figcaption></figure>



<h2 class="wp-block-heading">Controlador PHP</h2>



<p>Vamos a crear una nueva vista y para ello empezamos con el método que llamaremos <em>pdf()</em> en el controlador <em><em>templates_examples_controller</em>.php</em> El código se encuentra explicado entre líneas.</p>



<p>Archivo: <em>app/controllers/templates_examples_controller.php</em></p>



<pre class="wp-block-code language-php"><code>public function pdf()
{
    //Usa el tempalte &#039;pdf&#039;
    View::template(&#039;pdf/mpdf&#039;);
    //Modifica el nombre del archivo a descargar
    $this-&gt;fileName = &#039;user-list&#039;;
    //Modifica el título del documento PDF en la cabecera
    $this-&gt;title = &#039;User List&#039;;
    $this-&gt;download = false;

    $this-&gt;data = User::all(); // data to show (model User from db)
}</code></pre>



<h2 class="wp-block-heading">Vista HTML</h2>



<p>Ahora crearemos la vista la cual tendrá la tabla, recorriendo uno a uno los registro de la consulta realizada por el modelo en el controlador.</p>



<p>Archivo: <em>app/views/templates_examples/pdf.phtml&nbsp;</em></p>



<pre class="wp-block-code language-php"><code>&lt;?php if (!count($data)) : ?&gt;
    &lt;h2&gt;No hay ningún registro&lt;/h2&gt; 
&lt;?php else : ?&gt;
    &lt;table class=&quot;report&quot;&gt;
    &lt;caption class=&quot;caption&quot;&gt;&lt;?= $title ?&gt;&lt;/caption&gt;
        &lt;thead&gt;
            &lt;tr&gt;
                &lt;th scope=&quot;col&quot;&gt;First Name&lt;/th&gt;
                &lt;th scope=&quot;col&quot;&gt;Last Name&lt;/th&gt;
                &lt;th scope=&quot;col&quot;&gt;Email&lt;/th&gt;
                &lt;th scope=&quot;col&quot;&gt;Birthdate&lt;/th&gt;
            &lt;/tr&gt;
        &lt;/thead&gt;
        &lt;tbody&gt; 
            &lt;?php foreach ($data as $item) : ?&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;?= $item-&gt;first_name ?&gt;&lt;/td&gt;
                    &lt;td&gt;&lt;?= $item-&gt;last_name ?&gt;&lt;/td&gt;
                    &lt;td&gt;&lt;?= $item-&gt;email ?&gt;&lt;/td&gt;
                    &lt;td&gt;&lt;?= $item-&gt;birthdate ?&gt;&lt;/td&gt;
                &lt;/tr&gt;
            &lt;?php endforeach ?&gt;
        &lt;/tbody&gt;
    &lt;/table&gt;
&lt;?php endif ?&gt;</code></pre>



<p>No hace falta explicar mucho más de la vista anterior ya que es una vista normal en KumbiaPHP, esta vista es reutilizable por ejemplo si se quiere pasar a un documento Excel o devolver la vista mediante AJAX.</p>



<h2 class="wp-block-heading">Enlazar al reporte PDF</h2>



<p>Y en donde queramos que esté el enlace al reporte PDF simplemente lo añadimos a la vista deseada, nosotros lo hemos añadio a la página de información de los ejemplos de template.</p>



<p>Archivo: <em>app/views/templates_examples/info.pdf.phtml</em></p>



<pre class="wp-block-code language-php"><code>&lt;a href=&quot;/templates-examples/pdf&quot; target=&quot;_blank&quot;&gt;Export users list&lt;/a&gt;</code></pre>



<p>Y al pulsar el botón visualizaremos el documento PDF como el siguiente:</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="855" src="https://www.kumbiaphp.com/blog/wp-content/uploads/2020/04/example-pdf-kumbiaphp-1024x855.png" alt="" class="wp-image-2403" srcset="https://kumbiaphp.com/blog/wp-content/uploads/2020/04/example-pdf-kumbiaphp-1024x855.png 1024w, https://kumbiaphp.com/blog/wp-content/uploads/2020/04/example-pdf-kumbiaphp-300x250.png 300w, https://kumbiaphp.com/blog/wp-content/uploads/2020/04/example-pdf-kumbiaphp-768x641.png 768w, https://kumbiaphp.com/blog/wp-content/uploads/2020/04/example-pdf-kumbiaphp-940x785.png 940w, https://kumbiaphp.com/blog/wp-content/uploads/2020/04/example-pdf-kumbiaphp.png 1259w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Visualización del PDF generado con HTML</figcaption></figure>



<h2 class="wp-block-heading">Descargar código completo</h2>



<p>Como siempre, el código completo está disponible para todos en el siguiente repositorio en Github listo para usar: <a href="https://github.com/KumbiaPHP/Sandbox/" target="_blank" rel="noreferrer noopener">https://github.com/KumbiaPHP/Sandbox/</a></p>


<p>La entrada <a href="https://kumbiaphp.com/blog/2019/04/29/exportar-tabla-html-a-pdf/">Exportar tabla HTML a PDF</a> se publicó primero en <a href="https://kumbiaphp.com/blog">KumbiaPHP Framework PHP en español</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://kumbiaphp.com/blog/2019/04/29/exportar-tabla-html-a-pdf/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2078</post-id>	</item>
		<item>
		<title>Crear PDF usando HTML</title>
		<link>https://kumbiaphp.com/blog/2018/08/06/crear-pdf-usando-html/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=crear-pdf-usando-html</link>
					<comments>https://kumbiaphp.com/blog/2018/08/06/crear-pdf-usando-html/#comments</comments>
		
		<dc:creator><![CDATA[HenryStivens]]></dc:creator>
		<pubDate>Mon, 06 Aug 2018 10:00:37 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutoriales y screencast]]></category>
		<category><![CDATA[ejemplos]]></category>
		<category><![CDATA[mpdf]]></category>
		<category><![CDATA[pdf]]></category>
		<guid isPermaLink="false">https://www.kumbiaphp.com/blog/?p=1915</guid>

					<description><![CDATA[<p>Para crear PDF usando HTML con PHP existen diferentes librerías que nos pueden ayudar a cumplir el objetivo de&#8230;</p>
<p>La entrada <a href="https://kumbiaphp.com/blog/2018/08/06/crear-pdf-usando-html/">Crear PDF usando HTML</a> se publicó primero en <a href="https://kumbiaphp.com/blog">KumbiaPHP Framework PHP en español</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Para crear PDF usando HTML con PHP existen diferentes librerías que nos pueden ayudar a cumplir el objetivo de manera sencilla, esta vez vamos a probar <a href="https://github.com/mpdf/mpdf">mPDF</a>. mPDF es una librería en PHP la cual permite generar archivos <a href="https://es.wikipedia.org/wiki/PDF">PDF</a> usando HTML(Codificado con UTF-8). Está basada en <a href="http://www.fpdf.org/" rel="nofollow">FPDF</a> y HTML2FPDF, con varias mejoras, fue escrito por Ian Back y lanzado bajo licencia <a href="https://github.com/mpdf/mpdf/blob/development/LICENSE.txt">GNU GPL v2</a>.</p>
<h2>Instalación de mPDF</h2>
<p>El método de instalación oficial de mPDF en PHP es via composer y este es el paquete packagist: <a href="https://packagist.org/packages/mpdf/mpdf">mpdf/mpdf</a>.</p>
<p><code>composer require mpdf/mpdf</code></p>
<h2>Cargando la librería</h2>
<p>Como es un ejemplo básico realizaremos la carga de la librería sólo en el controlador que vamos a usar. De la siguiente manera:</p>
<p>Archivo: <em>default/app/controllers/index_controller.php</em></p>
<pre><code class="language-php">&lt;?php

// Require composer autoload
require_once APP_PATH . &#039;../../vendor/autoload.php&#039;;

use Mpdf\Mpdf;

/** 
 *
 * Controller por defecto si no se usa el routes 
 *
 */
class IndexController extends AppController
{
    public function index()
    {
    }
}
</code><code class="  language-php">
</code></pre>
<h2>Primer ejemplo de crear PDF usando HTML</h2>
<p>Creamos el método <em>example1()</em> donde sin usar vista o template creamos el «Hola mundo» del uso de la librería con el siguiente código:</p>
<p><span id="more-1915"></span></p>
<p>Archivo: <em>default/app/controllers/index_controller.php</em></p>
<pre><code class="language-php">public function example1()
{
    //Importante: Sin vista y sin tamplate 
    View::select(null, null);
    //Crea una instancia de la clase y le pasa el directorio default/app/temp/ 
    $mpdf = new Mpdf([&#039;tempDir&#039; =&gt; APP_PATH . &#039;/temp&#039;]);
    //Escribe algo de contenido HTML: 
    $mpdf-&gt;WriteHTML(&#039;¡Hola KumbiaPHP!&#039;);
    //Envía un archivo PDF directamente al navegador $mpdf-&gt;Output(); 
}</code><code class="  language-php"></code></pre>
<p>Dependiendo de la configuración del navegador nos mostrará en su visualizador de PDFs el documento creado. En caso contrario nos mostrará el diálogo para iniciar la descarga.</p>
<figure><a href="https://www.kumbiaphp.com/blog/wp-content/uploads/2018/07/html-to-pdf-example1.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1923 size-large" title="Documento PDF a partir de HTML" src="https://www.kumbiaphp.com/blog/wp-content/uploads/2018/07/html-to-pdf-example1-1024x640.png" alt="Ejemplo de crear PDF con HTML" width="940" height="588" srcset="https://kumbiaphp.com/blog/wp-content/uploads/2018/07/html-to-pdf-example1-1024x640.png 1024w, https://kumbiaphp.com/blog/wp-content/uploads/2018/07/html-to-pdf-example1-300x188.png 300w, https://kumbiaphp.com/blog/wp-content/uploads/2018/07/html-to-pdf-example1-768x480.png 768w, https://kumbiaphp.com/blog/wp-content/uploads/2018/07/html-to-pdf-example1-940x588.png 940w, https://kumbiaphp.com/blog/wp-content/uploads/2018/07/html-to-pdf-example1.png 1280w" sizes="auto, (max-width: 940px) 100vw, 940px" /></a><figcaption>Ejemplo de crear PDF con HTML</figcaption></figure>
<h2>Segundo ejemplo ¡Usaremos vistas!</h2>
<p>El primer ejemplo está bien, pero a nosotros nos gusta darle más orden y para mantener la lógica en su lugar. Vamos a crear un modelo llamado <strong>HtmlToPdf</strong> (Pueden llamarlo como deseen) y es donde a partir de ahora vamos a crear los archivos PDF, pero esta vez llamaremos el contenido de un partial, el cual nos servirá para mantener separado el <a href="https://es.wikipedia.org/wiki/HTML">HTML</a> del <a href="https://www.php.net/">PHP</a>. Primero observemos el contenido del partial:</p>
<p>Archivo: <em>default/app/views/_shared/partials/pdf/example2.phtml</em></p>
<p><code>&lt;h1&gt;¡Hola KumbiaPHP!&lt;/h1&gt;</code></p>
<p>Ahora si el método <em>example2()</em> en el modelo:</p>
<p>Archivo: <em>default/app/models/html_to_pdf.php</em></p>
<pre><code class="language-php">&lt;?php 
use Mpdf\Mpdf; 

class HtmlToPdf 
{ 
    public static function example2() 
    { 
        // Activa el almacenamiento en búfer de la salida 
        ob_start(); 
        // Carga el contenido del partial 
        View::partial(&#039;pdf/example2&#039;); 
        // Obtiene en $html el contenido del búfer actual y elimina el búfer de salida actual 
        $html = ob_get_clean(); 
        // Crea una instancia de la clase y le pasa el directorio temporal 
        $mpdf = new Mpdf([&#039;tempDir&#039; =&gt; APP_PATH . &#039;/temp&#039;]); 
        // Escribe algo de contenido HTML: 
        $mpdf-&gt;WriteHTML($html); 
        // Envia un archivo PDF directamente al navegador 
        $mpdf-&gt;Output(); 
    } 
}</code><code class="  language-php">
</code></pre>
<p>Ahora simplemente en el controlador sin usar vista ni template llamaremos el método <strong>example2()</strong> de la clase modelo <strong>HtmlToPdf</strong></p>
<p>Archivo: <em>default/app/controllers/index_controller.php</em></p>
<pre><code class="language-php">public function example2() 
{ 
    //Importante: Sin vista y sin tamplate 
    View::select(null, null); 
    //Llama al ejemplo 2 
    HtmlToPdf::example2(); 
}</code><code class="  language-php">
</code></pre>
<p>El código anterior hace exactamente lo mismo que el primer ejemplo, la diferencia es que esta vez usamos MVC. En el <strong>modelo</strong> añadimos la lógica para crear el documento pdf a partir de una <strong>vista</strong> parcial (partial), usamos el <strong>controlador</strong> para llamar el método implementado en el modelo.</p>
<p>Podemos añadir todo el HTML que deseemos siempre y cuando sea compatible con mPDF, eso nos da juego para añadir tablas, imágenes, enlaces, añadir estilos con css, etc.</p>
<h2>Ejemplo 3</h2>
<p>Vamos a hacer esta vez que el método del modelo reciba un parámetro <strong>$name</strong> y se lo pase a la vista parcial (partial) <em>pdf/example3</em>.</p>
<pre><code class="language-php">public static function example3($name) 
{ 
    // Activa el almacenamiento en búfer de la salida 
    ob_start(); 
    // Carga el contenido del partial pasandole datos 
    View::partial(&#039;pdf/example3&#039;, &#039;&#039;, [&#039;name&#039; =&gt; $name, &#039;date&#039; =&gt; date(DATE_ISO8601)]); 
    // Obtiene en $html el contenido del búfer actual y elimina el búfer de salida actual $
    html = ob_get_clean(); 
    // Crea una instancia de la clase y le pasa el directorio temporal 
    $mpdf = new Mpdf([&#039;tempDir&#039; =&gt; APP_PATH . &#039;/temp&#039;]); 
    // Escribe algo de contenido HTML: 
    $mpdf-&gt;WriteHTML($html); 
    // Obliga la descarga del PDF y se personaliza el nombre 
    $mpdf-&gt;Output(&#039;example3.pdf&#039;, \Mpdf\Output\Destination::DOWNLOAD); 
}</code><code class="  language-php"></code></pre>
<p>Ahora haremos que el partial reciba el valor de las variables y las imprima para que se muestre en el PDF.</p>
<p>Archivo: <em>default/app/views/_shared/partials/pdf/example3.phtml</em></p>
<pre><code class="language-php">&lt;h1&gt;¡Hola &lt;?= $name ?&gt;!&lt;/h1&gt;
&lt;p&gt; Este documento fue generado el &lt;?= $date ?&gt; &lt;/p&gt;</code><code class="  language-php">
</code></pre>
<p>Si entramos a la URL: <em>http://localhost:8184/index/example3/Henry</em> nos descargará el PDF con el nombre <strong>example3.pdf</strong> y veremos algo como la siguiente captura de pantalla:</p>
<figure><img loading="lazy" decoding="async" class="aligncenter wp-image-1932 size-large" title="Ejemplo 3 De HTML a PDF" src="https://www.kumbiaphp.com/blog/wp-content/uploads/2018/07/Captura-de-pantalla-2018-07-30-a-las-10.59.52-1024x803.png" alt="Ejemplo 3 De HTML a PDF" width="940" height="737" srcset="https://kumbiaphp.com/blog/wp-content/uploads/2018/07/Captura-de-pantalla-2018-07-30-a-las-10.59.52-1024x803.png 1024w, https://kumbiaphp.com/blog/wp-content/uploads/2018/07/Captura-de-pantalla-2018-07-30-a-las-10.59.52-300x235.png 300w, https://kumbiaphp.com/blog/wp-content/uploads/2018/07/Captura-de-pantalla-2018-07-30-a-las-10.59.52-768x602.png 768w, https://kumbiaphp.com/blog/wp-content/uploads/2018/07/Captura-de-pantalla-2018-07-30-a-las-10.59.52-940x737.png 940w, https://kumbiaphp.com/blog/wp-content/uploads/2018/07/Captura-de-pantalla-2018-07-30-a-las-10.59.52.png 1084w" sizes="auto, (max-width: 940px) 100vw, 940px" /><figcaption>Ejemplo 3 De HTML a PDF</figcaption></figure>
<p>Estos fueron tres ejemplos básicos para generar PDF usando HTML con PHP.</p>
<h2 data-tadv-p="keep">Segunda Parte de HTML a PDF</h2>
<p><a href="https://www.kumbiaphp.com/blog/2019/04/29/exportar-tabla-html-a-pdf/">Exportar tabla HTML a PDF</a></p>
<p>Si desean que hagamos un nuevo tutorial con ejemplos avanzados y de la vida real dejen su comentario en la caja de abajo.</p>
<h2>Descargar código completo</h2>
<p>Como siempre, el código completo del ejemplo para crea documentos PDF con PHP está disponible para todos en el siguiente repositorio en Github listo para usar con Docker: <a href="https://github.com/henrystivens/kumbiaphp-mpdf">https://github.com/henrystivens/kumbiaphp-mpdf</a></p>
<h2 data-tadv-p="keep">Nuevos ejemplos de mPDF</h2>
<p>Puedes ver un ejemplo del PDF generado más completo funcionando en <a href="https://sandbox.kumbiaphp.com/templates-examples/info/pdf">ejemplo mPDF</a>  y el código PHP de ejemplo <a href="https://github.com/kumbiaphp/sandbox/blob/master/app/controllers/templates_examples_controller.php">controlador</a> y <a href="https://github.com/kumbiaphp/sandbox/blob/master/app/views/_shared/templates/pdf/mpdf.phtml">template</a> para usar con cualquier vista de HTML.</p>
<p>La entrada <a href="https://kumbiaphp.com/blog/2018/08/06/crear-pdf-usando-html/">Crear PDF usando HTML</a> se publicó primero en <a href="https://kumbiaphp.com/blog">KumbiaPHP Framework PHP en español</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://kumbiaphp.com/blog/2018/08/06/crear-pdf-usando-html/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1915</post-id>	</item>
	</channel>
</rss>
