Convertir página web a PDF con wkhtmltopdf

Convertir HTML a PDF con wkhtmltopdf

Hoy vamos a ver cómo convertir un documento HTML (o página web) a un documento PDF utilizando la línea de comandos y un ejecutable llamado wkhtmltopdf que convierte HTML a PDF.

Si te preguntas de qué nos sirve de esto yo te respondo: gracias a que se puede ejecutar desde la línea de comandos, CMD o como lo llames, podemos hacer que casi cualquier lenguaje de programación invoque al binario y así convertir documentos o páginas web HTML a PDF desde una página web o aplicación de escritorio.

Instalar wkhtmltox

Ya he creado un post sobre cómo instalar y agregar la herramienta a la PATH, míralo aquí. En el resto del tutorial asumiré que lo has instalado correctamente.

Convertir sitio web a PDF

Veamos nuestro primer ejemplo de uso de wkhtmltopdf. La sintaxis básica es:

wkhtmltopdf sitio.com destino.pdf

Así de simple podemos convertir una página web o sitio web a un PDF, indicando la URL del sitio web y el nombre del documento de salida.

Para probar voy a convertir mi CV en un PDF así que:

wkhtmltopdf https://parzibyte.github.io/cv/ parzibyte.pdf

El comando se ejecuta:

Convertir página web a PDF con wkhtmltopdf

Después, en la ruta especificada estará el documento:

Ubicación del PDF generado

Así podemos descargar cualquier página y convertirla a un documento PDF.

Convertir documento HTML a PDF

Si tienes un documento HTML local (es decir, que no es una página web) también puedes usar wkhtmltopdf para generar un PDF del mismo. En mi caso tengo un archivo llamado index.html cuyo contenido es el siguiente:

Para convertirlo a PDF utilizo lo siguiente:

wkhtmltopdf index.html index.pdf

En este caso no especifico ninguna ruta absoluta porque los archivos están en la carpeta en donde estoy ubicado dentro de la terminal o CMD. La salida es:

Archivo local convertido a PDF

De este modo, si tienes un archivo HTML local puedes convertirlo a PDF sin necesidad de tener un servidor web o cosas así.

Agregar varios documentos

Puedes combinar varios documentos HTML para el PDF que se genera al final. Por ejemplo, puedes especificar varios archivos HTML o varias páginas web. Incluso puedes combinarlos.

Los documentos serán agregados en el orden en el que los especificas. Para este ejemplo combinaré el index.html y mi página web. El comando es:

wkhtmltopdf https://parzibyte.github.io/cv/ index.html combinado.pdf

Mientras el documento generado sea el último argumento que pasamos, todo está bien. Al final queda así:

Combinar varios documentos HTML para crear un PDF

Fíjate en el índice o tabla de contenidos y en el documento. Cuando se termina el del CV comienza el del ticket HTML.

De esta manera es como podemos combinar varios objetos HTML para generar un PDF al final, utilizando la línea de comandos y wkhtmltopdf.

Imágenes locales

Si te fijas, en el ejemplo del HTML la imagen que aparece es una imagen en base 64. Por otro lado, las del CV son imágenes de internet; para usar imágenes relativas recomiendo indicar rutas relativas al documento.

Por ejemplo:

De este modo, mientras la imagen esté relativa al documento, la misma será cargada generando así el documento PDF.

Más información

Si quieres, puedes ver la documentación oficial o el código fuente de esta grandiosa utilidad. Yo no tengo nada que ver con la misma, solo vengo a exponer cómo se usa.

Después de generar tus documentos PDF tal vez quieras imprimirlos.

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.

Dejar un comentario