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 :
- Fonctionnement non destructif : le PDF de sortie conserve les images originales et ajoute simplement une couche texte invisible par-dessus. Aucune perte visuelle, aucune altération de la mise en page.
- Intégration Tesseract : OCRmyPDF orchestre Tesseract en arrière-plan, ce qui permet de bénéficier de plus de cent modèles linguistiques, dont le basque (eus), sans configuration supplémentaire.
- PDF/A par défaut : les fichiers produits sont conformes au format d'archivage PDF/A, pratique pour la conservation à long terme.
- Options de prétraitement intégrées : redressement automatique des pages, détection d'orientation, nettoyage de l'image — autant d'améliorations souvent nécessaires sur les numérisations anciennes.
Le tout s'active par de simples drapeaux en ligne de commande. - Parallélisation native : OCRmyPDF exploite efficacement les cœurs d'un Mac Apple Silicon, ce qui rend le traitement de documents volumineux très rapide.
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 :
- --deskew : redresse les pages numérisées de travers. Très utile pour les scans réalisés à la main ou sur un scanneur à plat.
- --clean : nettoie l'image avant OCR via unpaper. Améliore la précision sur les pages jaunies, tachées ou contrastées faiblement.
- --rotate-pages : détecte et corrige automatiquement les pages orientées dans le mauvais sens.
- --force-ocr : force l'OCR même si le PDF contient déjà du texte. Pratique pour retraiter un PDF dont la couche texte précédente est de mauvaise qualité.
- --redo-ocr : refait l'OCR uniquement là où la couche existante est jugée insuffisante, sans toucher au reste.
- -j N : active le traitement parallèle sur N cœurs. Sur un MacBook Pro Apple Silicon, une valeur de 8 ou plus accélère nettement les gros volumes.
La valeur par défaut est plus conservatrice. - --output-type pdfa : produit un PDF/A archivable. C'est d'ailleurs le comportement par défaut, mais il peut être désactivé via --output-type pdf si nécessaire.
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 :
- Scanner en 300 ppp minimum, 600 ppp pour les petits corps de texte ou les notes de bas de page.
- Préférer le mode niveaux de gris au noir et blanc pur : Tesseract exploite mieux l'information de gradation.
- Commencer par une page test avant de lancer l'OCR sur tout le document. Un problème détecté tôt évite de reprendre un traitement long.
- Lorsque le document contient plusieurs langues, les indiquer toutes à Tesseract via -l fra+eus+spa par exemple. Le moteur arbitre automatiquement mot à mot.
- Pour les documents à mise en page complexe (colonnes, notes marginales, tableaux), si Tesseract donne des résultats insatisfaisants, envisager PaddleOCR ou docTR comme alternatives locales.
Fichiers et emplacements utiles
Quelques chemins à connaître sur une installation macOS via Homebrew :
- Les modèles linguistiques Tesseract sont stockés dans :
/opt/homebrew/share/tessdata/ - Le binaire ocrmypdf se trouve dans :
/opt/homebrew/bin/ocrmypdf - Les bibliothèques Tesseract sont installées dans :
/opt/homebrew/Cellar/tesseract/
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