Creating DJVU documents
Conversions PDF <=> DJVU
Conversion PDF en DJVU
Trois possibilitées de conversion, énoncées ci-dessous :
Méthode 1 - À partir de la commande pdf2djvu
pdf2djvu -d=DPI -o output.djvu input.pdf
On peut aussi passer l'option –monochrome –lossy
si cela ne dégrade pas trop la qualité du fichier de sortie. Souvent, le fichier qui ressort de cette commande est encore trop lourd, par rapport à la compression que peut offrir le support DJVU.
Méthode 2 - À partir des images du pdf
Obtention des pages et conversion de celles-ci en DJVU
pdfimages -all input.pdf out
donnera d'une part les images. On peut ensuite les convertir en *.pbm avec le script suivant :
#!/bin/bash for filename in * do case "$filename" in *.tif) name=${filename%\.*} convert "$filename" pbm/"${name}.pbm" echo "converted $filename" ;; *) ;; esac done
Ensuite, on convertit les images une à une en DJVU :
for i in *.pbm; do cjb2 -dpi 1200 -lossy "$i" djvu/"$i".djvu; done;
Pour les textes comportant des photographies
cfjb2
risque de dégrader celles-ci, et encore plus avec l'option -lossy
. Ainsi, il est parfoit utile de ne sélection que ces pages pour une conversion sans -lossy
:
for i in $(<pages.txt); do cjb2 -dpi 1200 "out-$i.pbm" djvu/"out-$i.pbm.djvu"; done;
où le fichier pages.txt
est formaté de la manière suivante :
001 010 229 ...
Finalisation
Finalement, on assemble le DJVU avec la commande djvm -c out.djvu *.djvu
.
Méthode 3 - Pour les fichiers récalcitrants
Notamment ceux trop lourd, et dont l'option –monochrome
de pdf2djvu
dégrade trop la qualité du fichier. D'une part, on effectue la conversion en DJVU à partir de la commande pdf2djvu -o output.djvu input.pdf
. Puis on peut ensuite extraire les images du DJVU :
ddjvu -format=tiff -eachpage input.djvu %02d.tiff
On peut éventuellement ajouter -quality=80
pour compresser les TIFF résultants.
On exécute alors ensuite le script précédent, on convertit les images en DJVU et on assemble le fichier final.
Conversion DJVU en PDF
Il faut utiliser djvups
pour obtenir le plus petit fichier possible :
djvups out.djvu | ps2pdf - out.pdf
Finalement, le PDF résultant peut être rogné - si nécessaire - en utilisant briss.
Alternativement, ddjvu
permet une conversion directe de DJVU en PDF :
ddjvu -format=pdf -quality=85 -verbose a.djvu a.pdf
Marques-pages
Insertion de marques-pages dans un DJVU
Il faut créer un fichier que l'on appelle par exemple bookmarks.txt
dont le format sera le suivant :
(bookmarks ("Ma section 1" "#1" ("Ma sous-section 1" "#2")) ("Ma section 2" "#10") )
où #X
est le numéro de page dans le DJVU. Pour appliquer les marques-pages, il suffit ensuite d'effectuer la commande :
djvused out.djvu -e "set-outline bookmarks.txt" -s
Conversion de marques-pages
Les marques pages ne sont pas conservés lors d'une conversion entre les formats DJVU et PDF. Pour les ré-insérer, il faut utiliser le logiciel Handy Outliner. Celui-ci fonctionne aussi sur Linux et MacOS X en utilisant l'environnement Mono. En particulier, sous 10.6.8, la version la plus récente de Mono est Mono 2.10.12.
Reconnaissances de caractère (OCR)
En utilisant le logiciel ocrodjvu. Un exemple d'utilisation est le suivant[(ref:>ocrodjvu, Jakub Wilk.)] :
$ ./ocrodjvu --in-place 'alice.djvu' Processing 'alice.djvu': - Page #1 $ djvused -e print-txt 'alice.djvu' | head -n14 (page 0 0 2488 3507 (column 470 2922 1383 2978 (para 470 2922 1383 2978 (line 470 2922 1383 2978 (word 470 2927 499 2976 "1") (word 588 2926 787 2978 "Down") (word 817 2925 927 2977 "the") (word 959 2922 1383 2976 "Rabbit-Hole")))) (column 451 707 2076 2856 (para 463 2626 2076 2856 (line 465 2803 2073 2856 (word 465 2819 569 2856 "Alice") (word 592 2819 667 2841 "was") (word 690 2808 896 2854 "beginning")
L'option –in-place
permet de directement écrire le texte dans le fichier DJVU.
Perte du support DJVU sous Evince
Evince peut parfois avoir des problèmes pour ouvrir les documents DJVU ne comportant qu'une seule page. Pour résoudre le problème, il faut éditer le fichier /usr/lib/x86_64-linux-gnu/evince/4/backends/djvudocument.evince-backend
et y ajouter image/vnd.djvu;
à la fin de la dernière ligne.