OCRiser un PDF sous macOS avec OCRmyPDF

Introduction

Lorsqu'un document PDF a été produit à partir d'un scanner, il ne contient que des images, pas de texte. Impossible alors de faire une recherche plein texte, de copier un passage, ou de passer le contenu à un outil tiers sans une étape préalable de reconnaissance optique de caractères (OCR). Sur macOS, OCRmyPDF est un excellent choix pour cette tâche : il s'agit d'un outil en ligne de commande qui ajoute une couche de texte invisible au PDF existant, tout en préservant la mise en page d'origine. Il s'appuie sur le moteur Tesseract, le standard open source en matière d'OCR, et il prend en charge une grande variété de langues, y compris certaines langues régionales comme le basque.

Cet article décrit l'installation et l'utilisation d'OCRmyPDF sur macOS (testé sous macOS Tahoe sur Apple Silicon), en prenant l'exemple d'un document bilingue français-basque imprimé dans les années 1960, pour lequel la reconnaissance a été excellente dès le premier essai.


Pourquoi OCRmyPDF

Plusieurs outils d'OCR existent sur macOS. OCRmyPDF se distingue par ses qualités propres :

Contrairement à des solutions cloud comme Google Document AI ou Azure Document Intelligence, OCRmyPDF tourne entièrement en local : aucun document n'est envoyé à un tiers, ce qui est essentiel lorsqu'on travaille sur des archives, des documents sensibles, ou simplement lorsqu'on souhaite garder la maîtrise de sa chaîne de traitement.


Installation

Prérequis

L'installation passe par Homebrew, le gestionnaire de paquets le plus répandu sur macOS. Si Homebrew n'est pas encore installé, la procédure officielle est disponible sur brew.sh.

Installation d'OCRmyPDF et de Tesseract

OCRmyPDF se procure via un simple paquet Homebrew. Par défaut, son installation tire Tesseract en dépendance, mais celui-ci ne contient que le modèle anglais. Pour accéder aux autres langues, il faut ajouter le paquet tesseract-lang, qui fournit l'ensemble des modèles linguistiques disponibles.

brew install ocrmypdf
brew install tesseract-lang

L'installation de tesseract-lang télécharge environ 350 Mo de modèles et occupe près de 700 Mo sur le disque une fois déployée. Cela peut sembler beaucoup, mais c'est le prix de la couverture linguistique complète : 163 langues et scripts sont alors disponibles.

Outils complémentaires recommandés

Deux paquets supplémentaires sont utiles selon les usages. poppler fournit la commande pdftotext, indispensable pour extraire ensuite le texte du PDF OCRisé. unpaper est un outil de nettoyage d'image activé par l'option --clean d'OCRmyPDF : il redresse, dépoussière et contraste les pages avant l'OCR, ce qui peut améliorer significativement les résultats sur des scans dégradés.

brew install poppler
brew install unpaper

Vérification de l'installation

Avant toute utilisation, il est bon de vérifier la version d'OCRmyPDF et la liste des langues effectivement installées avec Tesseract.

ocrmypdf --version
tesseract --list-langs

La seconde commande doit retourner une longue liste, contenant notamment fra pour le français, eng pour l'anglais, eus pour le basque, et bien d'autres. Si seul eng apparaît, c'est que tesseract-lang n'a pas encore été installé — reprendre l'étape précédente.

(Note : le modèle eus fourni par Tesseract est entraîné sur du basque unifié contemporain. Sur un texte pre-batua ou utilisant des conventions graphiques anciennes, la précision reste très bonne mais peut nécessiter une relecture, particulièrement sur les diacritiques et les digraphes spécifiques aux dialectes littéraires.)


Premier essai

La commande de base prend en entrée un PDF image et produit un PDF avec couche texte. Le paramètre -l précise la ou les langues à reconnaître, séparées par un signe plus. Pour un document bilingue français-basque par exemple :

ocrmypdf -l fra+eus document_scan.pdf document_ocr.pdf

Le fichier de sortie peut ensuite être ouvert dans Aperçu : la recherche plein texte (commande-F) y fonctionne, et le texte peut être sélectionné et copié comme dans n'importe quel PDF natif. Pour extraire le texte brut vers un fichier séparé, pdftotext fait parfaitement le travail :

pdftotext document_ocr.pdf document_ocr.txt

(Sur un document bilingue imprimé proprement, le taux de reconnaissance peut atteindre 99 % sans aucun prétraitement. Sur un scan ancien ou dégradé, il faudra recourir aux options décrites plus loin.)


Options utiles à connaître

OCRmyPDF accepte de nombreux drapeaux. Voici ceux qui reviennent le plus souvent dans un usage courant :

Pour un scan ancien de qualité moyenne, par exemple une méthode pédagogique imprimée dans les années 1960, une commande combinant plusieurs de ces options donne généralement d'excellents résultats :

ocrmypdf -l fra+eus --deskew --clean --rotate-pages -j 8 \
 methode_1963.pdf methode_1963_ocr.pdf

Bonnes pratiques pour les documents anciens

Voici quelques conseils issus d'un usage en conditions réelles sur un corpus bilingue ancien :


Fichiers et emplacements utiles

Quelques chemins à connaître sur une installation macOS via Homebrew :

Sur un Mac Intel, le préfixe Homebrew est historiquement /usr/local/ plutôt que /opt/homebrew/.
La structure interne reste toutefois identique.


Conclusion

OCRmyPDF s'impose comme un outil à la fois simple et redoutablement efficace pour traiter des PDF scannés sur macOS. Son installation via Homebrew est immédiate, sa ligne de commande est lisible, et ses options couvrent tous les cas courants, de la numérisation moderne bien contrastée au scan ancien un peu fatigué. Pour un utilisateur travaillant sur des archives, une bibliothèque personnelle numérisée, ou un corpus d'étude linguistique, il constitue une pièce maîtresse de la chaîne de traitement.

L'intégration avec Tesseract permet en outre de couvrir des besoins linguistiques variés, y compris les langues régionales comme le basque, et le fonctionnement entièrement local garantit la confidentialité des documents traités. Pour aller plus loin, la documentation officielle d'OCRmyPDF sur ocrmypdf.readthedocs.io reste la référence, complétée par le projet GitHub de Tesseract pour tout ce qui concerne les modèles linguistiques.



↑ Haut de page