OCR et Tesseract sur un PDF en ligne de commande
Auteur : Philippe Le Van - @plv@framapiaf.org
Date : 28 septembre 2021
Introduction
Ce tutoriel indique les étapes nécessaires pour reconnaitre les caractères d'un PDF en ligne de commande sous linux.
L'opération se fait en 2 étapes :
- convertir le PDF en format TIFF (format image). C'est nécessaire parce que Tesseract ne fonctionne qu'avec un des formats image.
- utiliser un outil d'OCR (optical character recognition) pour "lire" le fichier tiff
Pour que ce tutoriel fonctionne, il faut installer tesseract-ocr
et imagemagick
Convertir le PDF en TIFF
Il faut une conversion d'une bonne qualité pour que Tesseact fonctionne bien. Pour ça, j'utilise imagemagick avec les options suivantes :
1 |
|
Reconnaitre les textes bruts
Là on peut utiliser tesseract en ligne de commande pour récupérer les infos
1 2 |
|
Il ressort de cette commande un fichier outputbase.txt contenant le texte du fichier PDF.
Reconnaitre les textes avec les métadonnées (coordonnées des textes)
1 |
|
Là l'option "alto" à la fin indique le format de fichier output. Ici on récupère un fichier outputbase.xml qui contient pour chaque chaîne de caractères reconnue des infos dont les coordonnées sur la page.
Pour aller plus loin
La manpage de tesseract est bien faite.
Tesseract peut s'utiliser comme librairie plus bas niveau (il y a notamment plein d'exemples en python, je n'ai pas creusé).
Il y a des tutos partout sur imagemagick et tesseract et les docs officielles.