Wkhtmltopdf: una herramienta inteligente para convertir la página HTML de un sitio web a PDF en Linux


Wkhtmltopdf es una utilidad de shell de línea de comandos simple y muy efectiva de código abierto que permite al usuario convertir cualquier HTML (página web) en un documento PDF o una imagen (jpg, png, etc.).

Wkhtmltopdf está escrito en lenguaje de programación C ++ y distribuido bajo GNU/GPL (Licencia Pública General). Utiliza el motor de diseño de representación WebKit para convertir páginas HTML en documentos PDF sin perder la calidad de las páginas. Es una solución realmente muy útil y confiable para crear y almacenar instantáneas de páginas web en tiempo real.

Características de Wkhtmltopdf

  1. Código abierto y multiplataforma.
  2. Convierta cualquier página web HTML en archivos PDF utilizando el motor WebKit.
  3. Opciones para agregar encabezados y pies de página
  4. Opción de generación de tabla de contenido (TOC).
  5. Proporciona conversiones en modo por lotes.
  6. Compatibilidad con PHP o Python mediante enlaces a libwkhtmltox.

En este artículo, le mostraremos cómo instalar el programa Wkhtmltopdf en sistemas Linux utilizando archivos tarball de origen.

Instalar Evince (visor de PDF)

Instalemos el programa evince (un lector de PDF) para ver archivos PDF en sistemas Linux.

$ sudo yum install evince             [RHEL/CentOS and Fedora]
$ sudo dnf install evince             [On Fedora 22+ versions]
$ sudo apt-get install evince         [On Debian/Ubuntu systems]

Descargar archivo fuente Wkhtmltopdf

Descargue los archivos fuente wkhtmltopdf para su arquitectura Linux usando la página de descarga wkhtmltopdf.

$ wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
$ wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-i386.tar.xz

Instalar Wkhtmltopdf en Linux

Extraiga los archivos a un directorio de trabajo actual usando el siguiente comando tar.

------ On 64-bit Linux OS ------
$ sudo tar -xvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz 

------ On 32-bit Linux OS ------
$ sudo tar -xvzf wkhtmltox-0.12.4_linux-generic-i386.tar.xz 

Instale wkhtmltopdf en el directorio/usr/bin para una fácil ejecución del programa desde cualquier ruta.

$ sudo cp wkhtmltox/bin/wkhtmltopdf /usr/bin/

¿Cómo utilizar Wkhtmltopdf?

Aquí veremos cómo convertir páginas HTML remotas en archivos PDF, verificar información, ver archivos creados usando el programa evince desde el escritorio GNOME.

Para convertir cualquier página web HTML de un sitio web a PDF, ejecute el siguiente comando de ejemplo. Convertirá la página web dada a 10-Sudo-Configurations.pdf en el directorio de trabajo actual.

# wkhtmltopdf https://www.tecmint.com/sudoers-configurations-for-setting-sudo-in-linux/ 10-Sudo-Configurations.pdf
Loading pages (1/6)
Counting pages (2/6)
Resolving links (4/6)
Loading headers and footers (5/6)
Printing pages (6/6)
Done

Para verificar que se creó el archivo, use el siguiente comando.

$ file 10-Sudo-Configurations.pdf
10-Sudo-Configurations.pdf: PDF document, version 1.4

Para ver la información del archivo generado, ejecute el siguiente comando.

$ pdfinfo 10-Sudo-Configurations.pdf
Title:          10 Useful Sudoers Configurations for Setting 'sudo' in Linux
Creator:        wkhtmltopdf 0.12.4
Producer:       Qt 4.8.7
CreationDate:   Sat Jan 28 13:02:58 2017
Tagged:         no
UserProperties: no
Suspects:       no
Form:           none
JavaScript:     no
Pages:          13
Encrypted:      no
Page size:      595 x 842 pts (A4)
Page rot:       0
File size:      697827 bytes
Optimized:      no
PDF version:    1.4

Eche un vistazo al archivo PDF recién creado utilizando el programa evince desde el escritorio.

$ evince 10-Sudo-Configurations.pdf

Se ve bastante bien debajo de mi caja de Linux Mint 17.

Para crear una tabla de contenido para un archivo PDF, use la opción como toc.

$ wkhtmltopdf toc https://www.tecmint.com/sudoers-configurations-for-setting-sudo-in-linux/ 10-Sudo-Configurations.pdf
Loading pages (1/6)
Counting pages (2/6)
Loading TOC (3/6)
Resolving links (4/6)
Loading headers and footers (5/6)
Printing pages (6/6)
Done

Para comprobar la tabla de contenido del archivo creado, vuelva a utilizar el programa evince.

$ evince 10-Sudo-Configurations.pdf

Eche un vistazo a la imagen de abajo. se ve incluso mejor que el anterior.

Para más opciones y uso de Wkhtmltopdf, use el siguiente comando de ayuda. Mostrará una lista de todas las opciones disponibles que puede usar con él.

$ wkhtmltopdf --help