procedures:djvu_documents

no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


procedures:djvu_documents [2019/09/28 16:08] (current) – created alphedias
Line 1: Line 1:
 +====== 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 ===
 +
 +<code bash>pdf2djvu -d=DPI -o output.djvu input.pdf</code>
 +
 +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 ==
 +
 +<code bash>pdfimages -all input.pdf out</code>
 +donnera d'une part les images. On peut ensuite les convertir en *.pbm avec le script suivant :
 +
 +<code bash>
 +#!/bin/bash
 +for filename in *
 +do
 +  case "$filename" in
 +    *.tif)
 +      name=${filename%\.*}
 +      convert "$filename" pbm/"${name}.pbm"
 +      echo "converted $filename"
 +      ;;
 +    *)
 +      ;;
 +  esac 
 +done
 +</code>
 +
 +Ensuite, on convertit les images une à une en DJVU :
 +<code bash>for i in *.pbm; do cjb2 -dpi 1200 -lossy "$i" djvu/"$i".djvu; done;</code>
 +
 +== 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'' :
 +<code bash>for i in $(<pages.txt); do cjb2 -dpi 1200 "out-$i.pbm" djvu/"out-$i.pbm.djvu"; done;</code>
 +
 +où le fichier ''pages.txt'' est formaté de la manière suivante :
 +<code>001 010 229 ...</code>
 +
 +== 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 :
 +<code bash>ddjvu -format=tiff -eachpage input.djvu %02d.tiff</code>
 +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 :
 +<code bash>djvups out.djvu | ps2pdf - out.pdf</code>
 +
 +Finalement, le PDF résultant peut être rogné - si nécessaire - en utilisant [[https://sourceforge.net/projects/briss/|briss]].
 +
 +Alternativement, ''ddjvu'' permet une conversion directe de DJVU en PDF :
 +<code bash>ddjvu -format=pdf -quality=85 -verbose a.djvu a.pdf</code>
 +
 +===== 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 :
 +<code>(bookmarks
 +
 +("Ma section 1" "#1"
 +("Ma sous-section 1" "#2"))
 +("Ma section 2" "#10")
 +
 +)</code>
 +où ''#X'' est le numéro de page dans le DJVU. Pour appliquer les marques-pages, il suffit ensuite d'effectuer la commande :
 +<code>djvused out.djvu -e "set-outline bookmarks.txt" -s</code>
 +
 +==== 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 [[https://sourceforge.net/projects/handyoutlinerfo/|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 [[https://download.mono-project.com/archive/2.10.12/macos-10-x86/|Mono 2.10.12]].
 +
 +===== Reconnaissances de caractère (OCR) =====
 +----
 +
 +En utilisant le logiciel //ocrodjvu//. Un exemple d'utilisation est le suivant[(ref:>[[http://jwilk.net/software/ocrodjvu|ocrodjvu]], //Jakub Wilk//.)]
 + :
 +
 +<code>
 +$ ./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")
 +</code>
 +
 +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.
 +
 +===== Ressources et documentation =====
 +----
 +
 +  * http://djvu.sourceforge.net/doc/
 +
 +  * https://en.wikisource.org/wiki/Help:DjVu_files
 +
 +  * https://fr.wikisource.org/wiki/Aide:Cr%C3%A9er_un_fichier_DjVu/Linux
  • procedures/djvu_documents.txt
  • Last modified: 2019/09/28 16:08
  • by alphedias