Créer des copies d’écran de sites avec votre serveur

Générer des miniatures (ou copies d’écran) de n’importe quel site pour en faire une page de présentation ou pour aider les visiteurs à mieux se repérer dans votre index est quelque chose de plutôt fastidieux si l’on doit le faire soit-même à la main. C’est pourquoi, il existe des solutions pour faire ceci depuis votre ordinateur personnel (sous Debian et ses dérivées – Ubuntu, Xubuntu, etc…) avec (ou sans, avec xvfb) serveur X (graphique).

Information: D-Sites a créer un service nommé Print-Site qui vous permet de créer ces images de sites gratuitement sans aucune installation. Les serveurs de D-Sites s’occupent de tout ! Visitez l’annonce ou la page du projet Print-Site.

CutyCapt, un programme tout fait

Nous n’allons pas ré-inventer la roue, il existe des logiciels tous fait pour faire ça. C’est le cas de CutyCapt qui est une solution utilisant Qt4 et Webkit, que nous allons utiliser. Avant toute chose, nous allons installer Qt4 et tous les paquets relatifs nécessaires à l’exécution de CutyCapt :

apt-get install libqt4-webkit libqt4-dev g++

Ces paquets font environ 20Mo à télécharger puis prennent près de 50Mo une fois installés. Lorsqu’ils sont installés, nous allons télécharger CutyCapt depuis une archive hébergée par Mes-Stats  :

wget http://sources.mes-stats.fr/cutycapt/cutycapt-r2.tar.gz

Vous pouvez aussi télécharger la dernière version de CutyCapt depuis les dépots SVN, afin d’être sur d’avoir la dernière version. Néanmoins, il se peux qu’il y ait certains bugs ou certaines fonctionnalités de changées…

svn co http://cutycapt.svn.sourceforge.net/svnroot/cutycapt

Puis nous allons décompresser

tar -xzf cutycapt-r2.tar.gz
cd cutycapt

Nous allons ensuite compiler ce programme Qt4 en exécutant ces deux commandes:

qmake
make

Note: Si lors de la compilation (make) il y a un grand nombre d’erreurs, ré-essayez en remplacant qmake par qmake-qt4. En effet, sur certaines distributions, Qt est déjà installée en sa version 3 et qmake correspond à cette version.

Exécuter CutyCapt

Avec un serveur X

Si vous utilisez une machine qui a un serveur X installé, vous pourrez dès à présent utiliser CutyCapt en une seule commande:

./CutyCapt --url=http://www.d-sites.com --out=d-sites.png

Ce qui vous produit une image contenant une capture d’écran de D-Sites nommée “d-sites.png” encodée en… PNG ! :D

Note: CutyCapt vous permet d’exporter des images sous les formes svg, ps, pdf, itext, html, rtree, png, jpeg, mng, tiff, gif, bmp, ppm, xbm et xpm. Bien entendu, les rendus sous forme d’images fixes (png, gif, etc…) sont beaucoup plus surs que les rendus sous forme de PDF, SVG et autres.

Sans serveur X

Si vous n’avez pas de serveur X, en installer un prendrait trop de ressources par rapport à l’utilisation (probable) qu’il en serait fait. Pour ça, il existe Xvfb (X Virtual Frame Buffer) qui vous permet de simuler un serveur X le temps d’une requête. Il faut donc l’installer avant tout:

apt-get install xvfb

Ensuite, nous allons exécuter CutyCapt dans un serveur X virtuel de cette manière:

xvfb-run --server-args="-screen 0, 1024x768x24" ./CutyCapt --url=http://www.d-sites.com --out=d-sites.png

CutyCapt s’éxécutera ainsi dans une fenêtre de résolution 1024×768, ce qui n’a en réalité aucune importance. Pour spécifier la largeur de la page, utilisez l’option “–max-width=[...]” avec une valeur en pixels.

Attention: Malgré le fait que cette méthode est très attractive, elle n’est vraiment pas très performante. En effet, rien que pour s’initialiser, xvfb-run peut mettre jusqu’à 3 secondes ! Installer un serveur X n’est donc en fait pas une mauvaise alternative…

3 thoughts on “Créer des copies d’écran de sites avec votre serveur

  1. Pingback: Debian: Installer un serveur X » D-Sites

Leave a Reply

Your email address will not be published. Required fields are marked *

*


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

Notify me of followup comments via e-mail. You can also subscribe without commenting.