Factura PDF creada con Node.js, JavaScript y html-pdf

Factura PDF con Node.js

En este post de programación con JavaScript del lado del servidor con Node.js y un poco de express te mostraré cómo crear una factura, ticket o recibo PDF usando estas tecnologías.

Voy a enseñarte dos ejemplos. En el primero verás cómo crear un recibo PDF y guardarlo en el almacenamiento, mientras que en el segundo ejemplo te enseñaré mostrar el ticket PDF con Express.

Esto solo es una continuación a mi post de cómo crear un PDF con Node. Recuerda que tú eres libre de cambiar los estilos y modificar la plantilla, lo que aquí te muestro es mi ejemplo.

Diseño de la plantilla

Diseño de plantilla de factura HTML para convertir a PDF con Node
Diseño de plantilla de factura HTML para convertir a PDF con Node

Primero vamos a diseñar la plantilla HTML y después le vamos a pasar los datos desde Node, específicamente le pasaremos la lista de productos y los totales.

Al inicio se ve así:

Si te fijas estoy usando el framework Bootstrap 3 para demostrar que podemos usar cualquier hoja de estilos. Obviamente puedes usar cualquier hoja de estilos  o no usar estilos.

También fíjate en que estoy colocando variables como {{total}} o {{tablaProductos}}, mismas que vamos a pasar desde JavaScript del lado del servidor más adelante.

Creando factura con Node

Factura PDF creada con Node.js, JavaScript y html-pdf
Factura PDF creada con Node.js, JavaScript y html-pdf

Ahora simplemente vamos a leer el HTML de la plantilla, pasarle los valores (que al final será HTML) y luego convertirla a PDF. Te repito que aquí estoy suponiendo que ya leíste mi otro post sobre la creación de PDFs con JS.

Los comentarios y el código en sí ayudan a explicar toda esta generación del recibo de compra creado con Node.

Primero leemos el contenido del HTML y creamos el HTML necesario de la tabla de productos, mismo que será incluido en la cadena HTML usando replace.

Luego calculamos el total, impuestos, descuentos, etcétera y los formateamos como moneda. Finalmente convertimos el PDF a un archivo e imprimimos si la operación fue correcta.

Aquí puedes ver el PDF que resulta: Factura de ejemplo creada con Node.js

Sirviendo factura con Express

Para terminar este tutorial te voy a enseñar cómo mostrar esta factura PDF creada con Node.js directamente en el navegador usando Express. En lugar de invocar a toFile, invocamos a toStream así:

Ahora al ejecutar el script y visitar localhost:3000 tenemos el PDF mostrado:

Mostrar factura PDF en navegador usando Node.js y Express
Mostrar factura PDF en navegador usando Node.js y Express

Poniendo todo junto

Ya te mostré el código, pero si quieres tener el código completo incluyendo al package.json para que puedas instalar las dependencias con un npm install te lo dejo en GitHub.

Igualmente te dejo con más posts de JavaScript.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

4 comentarios en “Factura PDF con Node.js”

Dejar un comentario