OCR = Optical Character Recognition = Reconnaissance Optique de Caractère.
Il existe un script python qui fait ça très bien : pypdfocr.
Si vous avec un fichier PDF issu de la numérisation d'un document papier, c'est une solution pratique et simple.
Sous Linux, il suffit bien entendu d'installer Python, et éventuellement le paquet PIP qui permet l'installation de paquets supplémentaires pour Python :
sudo aptitude install python python-pip
Avant d'installer pypdfocr, quelques dépendances à satisfaire :
* gcc
* libjpeg-dev
* zlib-bin
* zlib1g-dev
* python-dev
* GhostScript
* ImageMagick
* Poppler
Ne pas oublier la bibliothèque qui fait tout le boulot de reconnaissance, Tesseract:
sudo aptitude install tesseract-ocr-osd
On installe alors le pypdfocr : pip install pypdfocr
On n'a plus ensuite qu'à utiliser le script en indiquant le fichier PDF sur lequel on souhaite faire la reconnaissance de caractères :
pypdfocr fichier.pdf => un fichier fichier_ocr.pdf sera généré avec une recherche plein texte. Super pratique !
Il y a d'autres options, dont une très intéressante qui permet de faire tourner le script en tâche de fond et lorsqu'il détecte un nouveau fichier PDF dans un répertoire donné, il en fait la reconnaissance optique
Pour les utilisateurs de Windows, il existe un exécutable, je ne l'ai pas testé, je ne sais pas si il y a d'autres trucs à installer :
https://github.com/virantha/pypdfocr/bl ... e?raw=true
La documentation (en anglais) de ce script ici :
http://virantha.github.io/pypdfocr/html/
Sur une machine récente, le manuel d'atelier de la MGB a demandé à peine 10 minutes pour être intégralement transformé.
L'inconvénient, c'est que le fichier n'est pas chapitré, et parfois on a envie d'aller au bon endroit tout de suite.
Pas de souci, on ajoute un index au fichier PDF. On édite avec son éditeur de texte préféré, un fichier truc.txt (ou truc.info, c'est plus joli), et on ajoute ceci pour les débuts de chapitre :
[/Page 2 /Title (Table of contents) /OUT pdfmark
=> on indiquer le numéro de la page, et entre parenthèses le titre du chapitre.
On fait ça pour chaque chapitre, on enregistre le fichier.
Puis on exécute la commande suivante (toujours sous Linux attention) :
gs -sDEVICE=pdfwrite -q -dBATCH -dNOPAUSE -sOutputFile=output.pdf -dPDFSETTINGS=/prepress truc.info -f fichier_à_indexer.pdf
Quelques secondes plus tard, on a un PDF avec des marque-pages.
Le plus coûteux en temps, c'est de scanner le document. Avec un copieur moderne, on a juste à charger la liasse de feuilles, et hop. Si c'est un bouquin, un coup de massicot sur la reliure...
Pour récupérer le texte d'un fichier PDF, il y a PDFMiner :
http://www.unixuser.org/~euske/python/pdfminer/
Pratique, mais génère un fichier texte pas très joli. La sortie HTML est à peine mieux. Sans doute faut-il regarder de plus près les options disponibles.