Inicio > Desarrollo Web > Tutoriales de Laravel > Cómo agregar gráficos a PDF en Laravel 11 fácilmente

Cómo agregar gráficos a PDF en Laravel 11 fácilmente

Diego Cortés
Diego Cortés
January 20, 2025
Cómo agregar gráficos a PDF en Laravel 11 fácilmente

En el mundo del desarrollo web, la generación de documentos en formato PDF es una práctica común, especialmente cuando se necesita presentar información de manera visual y clara. En esta oportunidad, exploraremos cómo integrar gráficos en archivos PDF utilizando Laravel 11, una de las plataformas más populares para el desarrollo de aplicaciones web en PHP. A continuación, te proporcionaremos una guía paso a paso para lograrlo de manera sencilla y efectiva.

Requisitos previos

Antes de comenzar el proceso de generación de PDF con gráficos en Laravel 11, es importante asegurarse de tener algunos elementos configurados y listos. A continuación, te enlistamos lo que necesitarás:

  1. Instalación de Laravel 11: Asegúrate de tener instalada la última versión de Laravel. Puedes hacerlo utilizando Composer.
  2. Bibliotecas necesarias: Necesitarás instalar las bibliotecas html2canvas y jspdf, que facilitarán la creación de gráficos dentro del PDF.
  3. JavaScript: Debes tener conocimientos básicos de JavaScript, ya que las bibliotecas mencionadas trabajan en este lenguaje.

Instalación de bibliotecas

Para añadir html2canvas y jspdf a tu proyecto de Laravel, primero abre tu terminal y ejecuta el siguiente comando:

npm install html2canvas jspdf

Esto permitirá que tu proyecto tenga acceso a estas herramientas fundamentales para la generación de gráficos.

Creación de gráficos en HTML

A continuación, es necesario desarrollar los gráficos que deseas incluir en el PDF. Puedes hacer esto utilizando bibliotecas como Chart.js o simplemente HTML y CSS para gráficos más simples. Asegúrate de que el gráfico sea renderizado en un elemento div que más tarde serán capturados por html2canvas.

Aquí tienes un ejemplo simple de un gráfico utilizando Chart.js:

<canvas id="myChart" width="400" height="400"></canvas>
<script>
var ctx = document.getElementById('myChart').getContext('2d');
var myChart = new Chart(ctx, {
    type: 'bar',
    data: {
        labels: ['Rojo', 'Azul', 'Amarillo', 'Verde', 'Morado', 'Naranja'],
        datasets: [{
            label: '# de Votos',
            data: [12, 19, 3, 5, 2, 3],
            backgroundColor: [
                'rgba(255, 99, 132, 0.2)',
                'rgba(54, 162, 235, 0.2)',
                'rgba(255, 206, 86, 0.2)',
                'rgba(75, 192, 192, 0.2)',
                'rgba(153, 102, 255, 0.2)',
                'rgba(255, 159, 64, 0.2)'
            ],
            borderColor: [
                'rgba(255, 99, 132, 1)',
                'rgba(54, 162, 235, 1)',
                'rgba(255, 206, 86, 1)',
                'rgba(75, 192, 192, 1)',
                'rgba(153, 102, 255, 1)',
                'rgba(255, 159, 64, 1)'
            ],
            borderWidth: 1
        }]
    },
    options: {
        scales: {
            y: {
                beginAtZero: true
            }
        }
    }
});
</script>

Generación del PDF

Con el gráfico ya creado, el último paso es capturarlo y generar el PDF. Aquí es donde html2canvas entra en acción. Utiliza el siguiente código JavaScript para tomar una captura del gráfico y generarlo en PDF:

function generatePDF() {
    html2canvas(document.getElementById('myChart')).then(function(canvas) {
        var imgData = canvas.toDataURL('image/png');
        var pdf = new jsPDF();
        pdf.addImage(imgData, 'PNG', 10, 10);
        pdf.save("grafico.pdf");
    });
}

Asegúrate de llamar a la función generatePDF() en el evento que desees, como un botón de "Descargar PDF".

Conclusión

Integrar gráficos en archivos PDF utilizando Laravel 11 puede parecer complicado, pero siguiendo estos pasos, podrás lograrlo de manera efectiva. Ahora podrás generar informes que incluyan gráficos visualmente atractivos y llenos de información valiosa.

Te invito a seguir explorando más artículos de este tipo en mi blog, donde encontrarás guías y herramientas útiles para mejorar tus proyectos en Laravel y otros temas de desarrollo web. ¡No te lo pierdas!

Diego Cortés
Diego Cortés
Full Stack Developer, SEO Specialist with Expertise in Laravel & Vue.js and 3D Generalist

Categorías

Page loaded in 28.47 ms