Je souhaite convertir un document DJVU en un document PDF en séparant et en préservant le calque de texte et les images tout en conservant la structure du fichier DJVU. Comment puis-je faire cela dans Ubuntu?
(J'utiliserai ensuite Caliber pour convertir ePub / Mobi, donc s'il y avait un plug-in Caliber pour tout ce processus, ce serait parfait pour moi!)
Remarque1: L'impression à partir d'Evince, l'exportation à partir de DJview ou toute autre application utilisant le package ddjvu ne sont pas des solutions adéquates, car elles suppriment le calque de texte et n'enregistrent que les images.
Note2: L'utilisation de DJVULibre semble extraire uniquement le calque de texte et les images ne sont pas extraites . De même, copier le texte "manuellement" perd la structure du document et les images.
Voici une solution qui nécessiterait des outils moins courants:
Nous pouvons utiliser
djvu2hocr
command (fromocrodjvu
package) pour extraire le calque de texte caché du fichier DjVu (il ne fait pas d’OCR ou similaire, il extrait simplement le calque de texte avec une géométrie), c’est-à-dire:djvu2hocr -p 10 sample.djvu | sed 's/ocrx/ocr/g' > pg10.html
sed
intervention corrige les noms de classe dans la sortie hOCR (qui est un simple fichier HTML)Nous extrayons maintenant la page DjVu au format TIFF avec:
ddjvu -format=tiff -page=10 sample.djvu pg10.tif
afin que nous terminions avec ces fichiers dans notre dossier de travail:
C'est là
pdfbeads
qu'entre en jeu, et nous exécutons simplement:pdfbeads -o pg10.pdf
alors ce programme astucieux s’occupe de tout ce qui se trouve dans ce dossier (fichiers HTML et TIFF avec le même nom de base) et génère un fichier PDF en sortie avec certains sous-produits:
qui est identique au fichier DjVu en entrée et contient un calque de texte:
Résumé des commentaires:
Les longs commentaires ci-dessous expliquent comment représenter des images plus petites à partir d'une page de document DjVu en tant qu'objets séparés, ce qui n'est pas facilement possible car la page de document DjVu n'est en elle-même qu'une seule image avec un calque de texte facultatif, sans aucune "information" sur les images plus petites en tant qu'objets séparés. Si le document DjVu contient des images couleur, elles seront généralement placées sur le calque d'arrière-plan. dans ce cas, l'utilisateur peut tirer parti d'outils tels que
ddjvu
(extraire uniquement les calques d'arrière-plan) etimagemagick
(rognage automatique) pour générer uniquement des images au lieu de la totalité du canevas, mais cette opération ne peut pas être automatisée pour créer un document PDF.Une autre approche plus saine, mais plus lente, consiste à utiliser des outils d'interface graphique OCR classiques.
gscan2pdf
(> 1.0) est suggéré comme candidat possible pour Linux PCla source
Il existe djvu2pdf mais il repose sur ghostscript, ce qui pourrait donc constituer une autre option d’impression. Je vous suggère tout de même d'y jeter un coup d'œil, juste au cas où il serait plus intelligent que je ne le crédite.
Ce n'est pas dans le dépôt mais vous pouvez télécharger un deb à partir du site du fabricant: http://0x2a.at/s/projects/djvu2pdf
** Insérez ici les informations obligatoires sur le téléchargement / l'installation d'éléments extérieurs au dépôt **
la source
En utilisant djvulibre , on peut extraire la couche de texte via la
terminal
commande:djvutxt myfile.djvu > myfile-ocr.txt
oudjvused myfile.djvu -e 'print-pure-txt' > myfile.txt
(les deux font la même chose, et ont été trouvés ici )
Le formatage nécessite quelques efforts (de nombreux symboles ne sont pas convertis correctement) et les images ne sont pas récupérées .
la source
http://www.djvu-pdf.com/ - Ce site web vous permet de convertir djvu en pdf.
la source
Le moyen le plus simple: utilisez gscan2pdf pour importer le djvu, puis faites-le avec OCR avec tesseract, puis sauvegardez-le au format PDF. Le texte OCR dans le pdf peut être légèrement différent du djvu original, et la conversion peut prendre un certain temps, mais cette méthode est une évidence et elle fonctionne.
la source
J'ai fait un script de la réponse de @ zetah.
Il est disponible ici: https://gist.github.com/matthieuheitz/7287e214b1aeda7948f6c27fbfb5288b
la source