Compression de PDF : la solution déjà vu (djvu)
Archi02 vient de publier un nouvel article sur la compression d’un document PDF.
Ghostscript est en effet une bonne solution lorsque le document comporte un bon nombre d’images. Récemment, j’ai transmis cette solution à un ami pour un de ses rapports, écrit en LaTeX, qui était trop gros pour être transmis par email. La compression avec ghostscript n’était pas concluante, car ses images étaient essentiellements des PDF inclus dans son document LaTeX, et ghostscript empirrait le poids du document final.
Dans ce cas, il existe une autre solution qui est de passer au format DJVU. Ce format est assez bien connu des personnes ayant pas mal d’ebooks (livres électroniques). Bien qu’il soit assez ancien, ce format est relativement peu connu, bien que j’ai l’impression que cela progresse.
Vous devriez trouver dans votre gestionnaire de paquet le logiciel pdf2djvu (GPLv2) qui permet de convertir un pdf en un fichier au format djvu (prononcez déjàvu). A noter que le logiciel est disponible sous windows et MacOS, mais je n’ai pas testé ces plateformes.
Le manuel est disponible là ou via la commande man pdf2djvu.
On y lit que par défaut, une extraction des mots sera faite, ce qui signifie que si dans votre document PDF vous pouviez faire une recherche sur tel ou tel mot, alors vous pourrez en faire de même avec votre document djvu. Par ailleurs, les liens hypertextes de mes documents LaTeX sont correctement conservé aussi, ce qui est fort appréciable.
La conversion se fait ainsi
pdf2djvu GrosFichier.pdf -o PetitFichier.djvu
Le manuel indique que le convertisseur peut être utilisé en parallèle avec l’option-j0 (détection du nombre de tâche automatique), mais un warning me dit que ce n’est pas supporté. Pour information, j’ai la version suivante :
pdf2djvu 0.7.1 (DjVuLibre 3.5.22, poppler 0.12.4, GraphicsMagick++ 1.3.11)
Je regarderai ça plus en détail d’ici quelques jours.
D’un point de vue qualité, il est vrai que par défaut, on perd un peu en qualité sur les graphiques et la font pour ma part, mais il faut regarder le résultat :
rapport.pdf : 11M (fichier initial)
printer.pdf : 1.5M (ghostscript, qualité printer)
ebook.pdf : 1.1M (ghostscript, qualité ebook)
djvu.djvu : 536K (pdf2djvu, options par défaut)
Deux paramètres peuvent être utilisés pour la qualité. La résolution d’une part (300dpi par défaut) via l’option -d et la compression des images via –bg-slices. On peut aussi jouer sur la palette des couleurs voir produire un document monochrome.
Je pense que cet outil a aussi ses limites, mais dans certains cas (et spécialement dans le cas de documents numérisés), je pense que ce peut être un très bon choix. A vous de tester quel est la meilleure solution pour vous. Dans le cas du rapport que l’on m’a envoyé, j’ai disivé par 10 le rapport de 12Mo avec djvu (conforme à ce que dit l’article wikipedia cité plus haut), là où ghostscript empirrait la situation.
PS : Le problème du support de parallélisation est relaté dans cet article.