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.
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.
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:
Después, en la ruta especificada estará el documento:
Así podemos descargar cualquier página y convertirla a un documento 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:
De este modo, si tienes un archivo HTML local puedes convertirlo a PDF sin necesidad de tener un servidor web o cosas así.
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í:
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
.
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.
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.
La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…
Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…
El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…
El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…
En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…
Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…
Esta web usa cookies.