Convertir de HTML a PDF utilizando Javascript

El formato PDF es muy útil para descargar datos de forma masiva en una aplicación web. Ayuda a los usuarios a descargar contenido dinámico en forma de archivo para que lo puedan utilizar sin conexión. Con la función de exportar a PDF, el contenido HTML se convierte en un documento PDF para que se pueda descargar después sin problema. En esta aplicación, utilizaremos un script del lado del servidor para convertir HTML a PDF generando un archivo que puede ser descargado por el usuario.

Si quieres que una solución del lado del cliente genere un documento PDF, Javascript es la forma más sencilla de convertir HTML a PDF. Existen varias librerías de Javascript que generan archivos PDF a partir de HTML. JsPDF es una de las mejores librerías para llevar a cabo esto. Es muy simple. En este tutorial te enseñaremos cómo generar documentos PDF y convertir HTML a PDF usando jQuery y la librería jsPDF.

Incluye jQuery y la librería jsPDF

<!-- jQuery library -->
<script src="js/jquery.min.js"></script>

<!-- jsPDF library -->
<script src="js/jsPDF/dist/jspdf.min.js"></script>

Instancia la clase jsPDF

Utiliza la siguiente línea de código para instanciar y utilizar el objeto jsPDF en Javascript.

var doc = new jsPDF();

Genera un PDF utilizando Javascript

El siguiente ejemplo muuestra cómo utilizar la librería jsPDF para generar un fichero PDF utilizando Javascript.

  • Define el contenido en el método text() del objeto jsPDF
  • Utiliza el método addPage() para añadir nuevas páginas al PDF
  • Utiliza el método save() para generar y descargar el fichero PDF
var doc = new jsPDF();

doc.text(20, 20, 'Hola mundo');
doc.text(20, 30, 'Vamos a generar un pdf desde el lado del cliente');

// Add new page
doc.addPage();
doc.text(20, 20, 'Visita programacion.net');

// Save the PDF
doc.save('documento.pdf');

Convertir contenido HTML a PDF utilizando Javascript

El siguiente ejemplo muestra cómo utilizar la librería jsPDF para convertir HTML en PDF y generar un fichero PDF a partir de contenido HTML utilizando Javascript.

  • Recupera el contenido HTML de un elemento específico mediante el ID o la clase
  • Convierte el contenido de dicho elemento a PDF y genera el fichero
  • Guarda y descarga el fichero

Codigo HTML

<div id="content">
    <!-- el contenido HTML va aqui -->
</div>

<div id="elementH"></div>

Código Javascript

var doc = new jsPDF();
var elementHTML = $('#content').html();
var specialElementHandlers = {
    '#elementH': function (element, renderer) {
        return true;
    }
};
doc.fromHTML(elementHTML, 15, 15, {
    'width': 170,
    'elementHandlers': specialElementHandlers
});

// Save the PDF
doc.save('sample-document.pdf');

Configuraciones interesantes

La librería jsPDF cuenta con varios métodos y opciones para configurar la creación del PDF. Algunos de estos métodos te los mostramos más abajo.

Cambiar la orientación del papel

Utiliza la opción orientation para definir la orientación del papel.

var doc = new jsPDF({
    orientation: 'landscape'
});

doc.text(20, 20, 'Hola mundo');
doc.text(20, 30, 'Vamos a generar un pdf desde el lado del cliente.');

// Add new page
doc.addPage();
doc.text(20, 20, 'Visita programacion.net');

// Save the PDF
doc.save('documento.pdf');

Cambiar la fuente

Utiliza los métodos setFont() y setFontType() para definir la fuente del PDF.

var doc = new jsPDF();
	
doc.text(20, 20, 'This is the default font.');

doc.setFont("courier");
doc.setFontType("normal");
doc.text(20, 30, 'Esto es courier normal.');

doc.setFont("times");
doc.setFontType("italic");
doc.text(20, 40, 'Esto es times italic.');

doc.setFont("helvetica");
doc.setFontType("bold");
doc.text(20, 50, 'Esto es helvetica bold.');

doc.setFont("courier");
doc.setFontType("bolditalic");
doc.text(20, 60, 'Esto es courier bolditalic.');

// Save the PDF
doc.save('documento.pdf');

Cambiar el tamaño de la fuente

Utiliza el método setFontSize() para cambiar el tamaño del texto del PDF.

var doc = new jsPDF();
	
doc.setFontSize(24);
doc.text(20, 20, 'Esto es el titulo');

doc.setFontSize(16);
doc.text(20, 30, 'Esto es un texto con un tamaño normal.');

// Save the PDF
doc.save('documento.pdf');

Cambiar el color de la fuente

Utiliza el método setTextColor() para definir el color del texto del PDF.

var doc = new jsPDF();
	
doc.setTextColor(100);
doc.text(20, 20, 'Esto es gris.');

doc.setTextColor(150);
doc.text(20, 30, 'Esto es gris claro.');

doc.setTextColor(255,0,0);
doc.text(20, 40, 'Esto es rojo.');

doc.setTextColor(0,255,0);
doc.text(20, 50, 'Esto es verde.');

doc.setTextColor(0,0,255);
doc.text(20, 60, 'Esto es azul.');

// Save the PDF
doc.save('document.pdf');

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP