Wkhtmltopdf - Una herramienta inteligente para convertir una 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 PDF documento o una imagen ( jpg , png , etc.)

Wkhtmltopdf está escrito en lenguaje de programación C ++ y se distribuye bajo GNU/GPL ( Licencia Pública General ). Utiliza el motor de diseño de representación WebKit para convertir las páginas HTML a 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. Open source and cross platform.
  2. Convert any HTML web pages to PDF files using WebKit engine.
  3. Options to add headers and footers
  4. Table of Content (TOC) generation option.
  5. Provides batch mode conversions.
  6. Support for PHP or Python via bindings to libwkhtmltox.

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

Instalar Evince (visor de PDF)

Instalemos el programa evince (un PDF ) para ver los archivos PDF en los 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 el archivo fuente Wkhtmltopdf

Descargue los archivos fuente wkhtmltopdf para su arquitectura Linux utilizando el comando Wget, o también puede descargar las últimas versiones (la serie estable actual es 0.12.4 ) en Página de descarga de 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 el 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 las páginas HTML remotas en archivos PDF , verificar la información, ver los archivos creados utilizando el programa evince del GNOME Escritorio.

Para convertir cualquier página web HTML a PDF , ejecute el siguiente comando de ejemplo. Convierte 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 el archivo está creado, 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 con el programa evince desde el escritorio.

$ evince 10-Sudo-Configurations.pdf

Se ve muy 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 verificar el TOC para el archivo creado, use nuevamente el programa evince.

$ evince 10-Sudo-Configurations.pdf

Echa un vistazo a la imagen de abajo. Se ve aún mejor que el anterior.

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

$ wkhtmltopdf --help