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.


Adhérer April
CC-BY-SA
La Quadrature du Net
Planet-libre
Wikio
3 commentaires
Comments feed for this article
11 juin 2010 à 11:04
archi02
Très bonne astuce également ! Effectivement très efficace pour compresser un document PDF. Je la garde sous le coude, notamment pour ce qui de la problématique LaTeX que je ne connais pas (mais ça ne saurait tarder).
Je vois par contre deux désavantages par rapport à la solution Ghostscript : d’abord le changement de format est contraignant car bien moins supporté par les visionneurs traditionnels (notamment sur les plateforme MAC OSX et MS Windows) ; ensuite je remarque que la qualité est très médiocre (réglages par défaut), notamment à l’impression. À ce niveau, du point de vue rapport qualité/compression, le mode /ebook de GS est bien meilleur.
Mais c’est vrai (je l’ai remarqué également) que dans certaines situations GS produit un effet inverse. Ceci dépasse d’ailleurs mon entendement. À voir donc selon ses contraintes propres…
14 juin 2010 à 5:45
Ulhume
Je ne connaissais pas ce format mais après avoir bouquiné la page wikipedia (un peu succinte, je n’ai par exemple rien trouvé sur la licence de ce format), j’ai cru comprendre qu’il état entièrement basé sur de la compression/indexation d’images. Le document d’origine est séparé en un fond (souvent juste blanc avec rien dessus), un calque (les textes souvent monochrome) et les illustrations. Les contenus texte (au sens ascii du terme) sont indexés (pour la recherche) et ainsi reliés aux portions d’image correspondantes dans une page donnée.
Du coup c’est clairement plus léger mais on pert aussi les possibilité d’extraction de contenu texte du pdf. Pas possible par exemple d’importer un djvu sous openoffice pour le modifier.
Encore une fois, si j’ai bien tout compris, djvu peut-être vi comme une compression du résultat de rendu d’un pdf. Cela explique la perte de qualité (même si ce doit être optimisable un peu mieux que par les paramètres par défaut).
14 juin 2010 à 6:46
François
Ah, mais je heureux d’apprendre quelque chose à un maitre comme toi
il y sans doute quelques infos supplémentaire ici
http://djvu.sourceforge.net/index.html
Il est dit que djvulibre est une implémentation sous GPL du code original des inventeurs. (cf dernière partie)
Et effectivement on perd l’importation, ou alors il faut user d’OCR pour cela. Un peu usine à gaz, je l’avoue