dmesg.fr:~#

display message

Convertir une page web HTML au format PDF ou PNG en ligne de commande

html pdf png iconsConvertir une page web HTML au format PDF ou PNG en ligne de commande peut s'avérer utile, dans la mesure où vous pouvez intégrer cette commande dans un script, et automatiser un certain nombre de choses.

On peut imaginer convertir par lot plusieurs pages html en pdf / png, envoyer le résultat automatiquement par email, etc.

Voici comment procéder.



Prérequis

Vous devez installer Firefox ou Iceweasel.

Ensuite téléchargez l'extension cmdlnprint :

https://sites.google.com/site/torisugari/cmdlnprint_0_5_2.zip?attredirects=0

 


Décompressez le fichier zip, puis ouvrez le fichier .xpi avec Firefox / Iceweasel.

Une fois l'extension installée, redémarrez Firefox / Iceweasel.


Convertir une page HTML au format PNG

Ouvrez un Terminal et tapez :

firefox -print www.debian.org -printmode png -printfile ~/debian-org.png


Convertir une page HTML au format PDF

Ouvrez un Terminal et tapez :

firefox -print www.debian.org -printmode pdf -printfile ~/debian-org.pdf


Note : le résultat de la conversion au format PDF peut différer par rapport à l'affichage de la page web avec un navigateur. Le fichier au format PNG aura lui le même aspect que dans le navigateur Internet.


Intégration de la conversion HTML vers PDF ou PNG dans un script

Lorsque vous exécutez un script contenant les commandes ci-dessus :

- une session graphique doit être ouverte, sans quoi firefox ne pourra pas démarrer
- vous devez faire un export DISPLAY


Exemple de script : conversion de plusieurs pages HTML au format PNG

Ouvrez un Terminal à la racine de votre répertoire personnel, et créez un fichier sites-internet.txt avec le contenu ci-dessous :

http://www.debian.org
http://fr.wikipedia.org/wiki/Debian


Créez ensuite un script avec le contenu ci-dessous, et nommez-le firefox-print-to-png :

#!/bin/bash

fic_urls=$1
export DISPLAY=:0

[ $# -ne 1 ] && { echo -e "\nERREUR : Paramètre 1 obligatoire : nom du fichier contenant les URLs\n"; exit 1; }
[ -f $fic_urls ] || { echo -e "\nLe fichier $fic_urls n'existe pas.\n"; exit 1; }

while read ligne
do
echo "Conversion de la page : $ligne"
nom_fichier=`echo $ligne | tr [:punct:] _`.png
firefox -print $ligne -printmode png -printfile ~/$nom_fichier
done < $fic_urls


Exécutez le script :

./firefox-print-to-png sites-internet.txt


Vous obtenez 2 fichiers PNG : http___www_debian_org.png et http___fr_wikipedia_org_wiki_Debian.png

Libre à vous d'adapter ce script pour envoyer par exemple le résultat par email.


Copyright dmesg.fr - All Rights Reserved.