Convertir una página web a PDF en Ubuntu desde Nautilus

Introducción

Actualmente existen innumerables herramientas que nos permiten pasar de HTML a PDF, y al revés unas con mas acierto que otras. Además han aparecido interesantes servicios como puede ser Pocket (el antes conocido como Read It Later) que transforman una página web de forma que pueda ser leída con comodidad desde un dispositivo móvil.

Sin embargo, en ocasiones, nos interesa mantener completamente la estructura de la página, para poder leerla en algún dispositivo o poder mostrarla tal y como se ve en la web. Para esto, existen igualmente diferentes aplicaciones, incluso, el script sobre el que voy a escribir hoy que trabaja directamente desde Nautilus.

0090_atareao.pdf.png

wkhtmltopdf

Este script utiliza como herramienta de trabajo wkhtmltopdf, una aplicación que te permite convertir documentos HTML a documentos PDF, con un resultado mas que aceptable, puesto que utiliza WebKit como motor de renderizado.

Instalación de wkhtmltopdf

wkhtmltopdf se encuentra en los repositorios oficiales de Ubuntu, con lo que su instalación es muy sencilla, solo tienes que hacer clic en el siguiente enlace wkhtmltopdf para instalarlo desde el Centro de Software de Ubuntu, o bien, desde el terminal:

sudo apt-get install wkhtmltopdf`

Uso y funcionamiento de wkhtmltopdf

wkhtmltopdf es una herramienta para utilizar desde el emulador del terminal, y su uso es tan sencillo como:

wkhtmltopdf https://atareao.es atareao.pdf`

Con esto ya tienes convertida una página a PDF. Aún así, te permite gran número de opciones a tener en cuenta si quieres personalizar el archivo de salida:

  • –copies te permtite definir el número de copias a imprimir
  • –orientation (landscape ó portrait) para que se guarde como apaisado o vertical
  • –page-size que permite definir el tamaño de la página de salida

Pero además existen otras opciones que no aparecen en la ayuda normal, y que son también muy interesantes como puede ser:

  • –margin-bottom define el margen del pie de página que por defecto está definido en 1. mm
  • –margin-left define es el margen izquierdo
  • –margin-right define el margen derecho
  • –margin-top define el margen superior

Además nos permite definir un encabezado y un pie de página personalizado, donde podemos indicar entre otras cosas el número de página, etc.

El script para Nautilus

Llegados a este punto, definir un script para Nautlius, utilizando esta herramienta es realmente sencillo, si bien, en Gnome-Look.org, nos ahorran el trabajo. O bien, lo puedes descargar de allí, o bien, simplemente lo copias de las siguientes líneas de código:

`#!/bin/sh
if [ -f /usr/bin/wkhtmltopdf ];then
website=$(zenity --title "Enter your website address: " --entry --text="Ex: https://google.com " --width 300)
name=$(zenity --title "Enter pdf name: " --entry --text="Ex: google \nUse no spaces" --width 30\. )
cd $HOME/Desktop
wkhtmltopdf $website $name.pdf | zenity --title="Saving..." --progress --pulsate --auto-close --no-cancel --text="Saving your page to Desktop and coverting to pdf...\n $website" --width 350
else 
echo | zenity --progress --title="The program not installed" --text=" Install using commandline:\n \n sudo apt-get install wkhtmltopdf" --width 300
fi

Le das permisos de ejecución, y la copias en el siguiente directorio:
`~/.local/share/nautilus/scripts

De esta forma desde Nautilus puedes convertir una página html en pdf, con solo seleccionar la entrada del menú contextual, e indicar la dirección de la página y el nombre del archivo.

Conclusiones

Como he indicado en la introducción, para la conversión de páginas web a archivos pdf, existen diferentes herramientas, y probablemente el uso de Nautilus para realizar este tipo de tareas no sea el mas recomendable, pero ha servido de introducción para wkhtmltopdf que es una herramienta realmente muy poderosa, y con un resultado muy, pero que muy aceptable.

Llegados a este punto, con un poquito de programación y la ayuda de Cron, creo que se podrán hacer auténticas maravillas…

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *