Aller au contenu
LeedyBox
Soutenir

Extraire le texte d’un PDF : couches de texte et OCR

Certains PDF livrent leur texte en une seconde ; d’autres ne contiennent que des images de pages et demandent de l’OCR. Ce guide explique comment le texte est stocké dans un PDF, pourquoi le texte extrait peut sortir illisible ou dans le désordre, comment l’OCR lit les pages numérisées et ce qui influe sur sa précision, et ce qu’il faut vérifier avant de se fier au résultat.

Deux types de pages PDF

Une page PDF peut contenir du texte de deux façons. La plupart des PDF exportés depuis un traitement de texte, un navigateur ou un logiciel de mise en page ont une couche de texte : chaque caractère est stocké sous forme de code d’une police et placé à un endroit de la page. Une page numérisée ou photographiée est différente : c’est une seule image de la page, et pour un logiciel, les lettres qu’elle montre ne sont que des pixels.

Type de pageComment elle a été crééeCe que renvoie l’extraction
PDF texteExporté ou imprimé en PDF depuis une applicationLes caractères stockés, en général à l’identique
PDF numériséScanner, appareil photo du téléphone ou faxRien tant que l’OCR n’a pas lu l’image
Numérisation interrogeableUne numérisation à laquelle une couche OCR a été ajoutéeCe résultat d’OCR, avec ses erreurs
Texte vectoriséTexte converti en formes dans un logiciel de dessinAucun caractère ; seul l’OCR peut le lire

Un lecteur PDF permet généralement de savoir de quel type il s’agit. Si vous pouvez sélectionner un seul mot ou le trouver avec la recherche, la page a une couche de texte. Si un glissement sélectionne toute la page comme un bloc, ou si la recherche ne trouve rien, la page est une image. Un même fichier peut mélanger les deux, comme un rapport saisi avec des annexes numérisées.

Comment fonctionne l’extraction de la couche de texte

Un PDF ne stocke pas de paragraphes. Il stocke des fragments de caractères, chacun avec une police et une position, souvent un mot ou quelques lettres à la fois, dans l’ordre choisi par le programme qui a créé le fichier. Un extracteur lit ces fragments et reconstitue les lignes à partir de leurs positions.

L’outil PDF en texte de LeedyBox lit les fragments avec PDF.js, le moteur PDF de Firefox. Il commence une nouvelle ligne quand la position verticale change de plus de 5 points (environ 1,8 mm) et, sinon, relie les fragments par une espace ; chaque page du résultat commence par un repère comme --- Page 1 ---. La plupart des documents sur une colonne sortent lisibles, avec quelques effets secondaires :

  • Un mot stocké en plusieurs fragments, par exemple à cause de l’interlettrage, peut sortir avec des espaces à l’intérieur.
  • Les colonnes, encadrés et légendes apparaissent dans l’ordre où ils sont stockés, qui peut différer de l’ordre de lecture.
  • Les exposants, appels de note et autres textes placés plus haut ou plus bas que la ligne peuvent former une ligne à part.
  • Les en-têtes, pieds de page et numéros de page font partie du texte de chaque page.

Pourquoi le texte extrait peut sembler illisible

Dans un PDF, le texte est stocké sous forme de codes de glyphes d’une police, et non de caractères Unicode. Pour retrouver les lettres, le fichier a besoin d’une table de correspondance. Les PDF bien conçus incluent une table ToUnicode pour chaque police, et les polices à codage standard peuvent être décodées sans elle. Les difficultés commencent lorsqu’une police est incorporée sous forme de sous-ensemble avec sa propre numérotation et sans table : les codes ne signifient rien hors du fichier, et l’extraction produit de mauvaises lettres, des symboles ou des carrés vides, alors que la page s’affiche correctement.

Les polices chinoises, japonaises et coréennes utilisent souvent des tables de caractères prédéfinies (CMap), comme Adobe-Japan1 ou Adobe-Korea1, au lieu de tables propres. L’outil LeedyBox charge ces CMap avec PDF.js, ce qui permet de lire correctement de nombreux documents d’Asie orientale que des extracteurs plus simples déforment. Autres causes fréquentes : les ligatures, comme fi stocké en un seul glyphe, les polices Type 3, dont les lettres sont dessinées comme des formes et souvent sans table, et les PDF dont le codage a été brouillé exprès pour compliquer la copie.

Lorsqu’une page a une couche de texte, l’outil l’utilise, même si ce texte est illisible, et ne lance pas l’OCR sur cette page. Pour lire une telle page par OCR, convertissez-la en image avec PDF en JPG, puis lisez l’image avec Image en texte (OCR).

Quand l’outil LeedyBox utilise l’OCR

L’outil décide page par page. Si la couche de texte d’une page compte moins de 15 caractères, la page est dessinée sous forme d’image au double de sa taille normale, soit environ 144 pixels par pouce, puis lue par Tesseract.js dans la langue choisie sous « Langue OCR », en plus de l’anglais. Dans un document qui mêle pages saisies et pages numérisées, les pages saisies sont donc lues à l’identique et seules les numérisations passent par l’OCR.

Une page numérisée qui ne contient que quelques caractères issus d’un tampon ou d’un numéro de page est toujours considérée comme vide et passe par l’OCR. Une numérisation qui possède déjà une couche de texte de 15 caractères ou plus n’y passe pas : une couche OCR de mauvaise qualité ajoutée par le scanner ressort donc telle quelle. Le moteur d’OCR et ses données de langue sont téléchargés depuis leedybox.com lors du premier passage de l’OCR, ce qui ralentit la première page numérisée. Votre PDF est lu dans le navigateur et n’est pas envoyé en ligne.

Comment l’OCR transforme des pixels en texte

L’OCR procède par étapes. Le moteur convertit d’abord l’image en noir et blanc et repère les blocs de texte, les lignes et les mots : c’est la segmentation de la page. Un réseau de neurones entraîné pour une langue ou une écriture lit ensuite chaque ligne et choisit la suite de caractères la plus probable, en s’aidant des listes de mots de la langue. Le résultat est une estimation, pas une copie : des formes proches comme 0 et O, 1, l et I, ou rn et m peuvent être confondues, et les mots absents des données de langue sont plus souvent mal lus.

Le choix de la langue compte plus que toute autre option. Un modèle entraîné sur l’alphabet latin ne peut pas lire le thaï ou le japonais, et un texte dans une langue non sélectionnée sort en général sous forme de caractères erronés. Toutes les options de l’outil LeedyBox, sauf « Anglais uniquement », associent la langue choisie à l’anglais, ce qui aide pour les documents mixtes, comme un contrat en français avec des noms de produits en anglais.

Ce qui influe sur la précision de l’OCR

FacteurEffetCe qui aide
RésolutionLes petits caractères perdent les détails qui distinguent les lettresNumériser à 300 DPI ou plus ; davantage pour les petits caractères
Inclinaison et courbureLes lignes penchées et les pages de livre bombées perturbent la détection des lignesNumériser à plat et droit ; photographier bien à la verticale
Contraste et bruitFonds gris, taches, transparence du verso et artefacts JPEG ressemblent à des traitsNumérisations propres, texte foncé sur fond blanc
PolicesLes polices décoratives, très fines ou très grasses sont plus souvent mal luesVérifier le résultat avec soin
Écriture manuscriteTesseract est entraîné sur du texte impriméS’attendre à de mauvais résultats ; mieux vaut saisir le texte
Texte verticalLe japonais ou le chinois écrit à la verticale est souvent mal luVérifier avec soin ou ressaisir

Comme l’outil dessine les pages à environ 144 pixels par pouce, les petits caractères, comme les notes de bas de page ou les clauses en petits caractères d’un contrat, peuvent être difficiles à lire même sur une bonne numérisation. Pour ces pages, PDF en JPG produit des images de plus haute résolution, et Image en texte (OCR) peut relire le petit texte en taille doublée et augmenter le contraste avant la reconnaissance.

Tableaux, colonnes et mise en page

Le résultat est du texte brut. Les tableaux perdent leur grille, les pages sur plusieurs colonnes peuvent sortir colonne par colonne ou ligne par ligne à travers les colonnes, et les zones de texte et légendes se retrouvent là où le fichier ou le moteur d’OCR les a placées dans l’ordre de lecture. Reconnaître des mots et reconstruire une mise en page sont deux problèmes distincts, et l’outil ne résout que le premier. Pour les tableaux de chiffres, vérifiez chaque valeur sur l’original ou ressaisissez le tableau dans un tableur ; pour les longs documents, reconstituez titres et paragraphes dans votre éditeur après l’extraction.

Vérifier et nettoyer le résultat

  • Comparez quelques nombres, noms et dates avec l’original ; les erreurs d’OCR dans les chiffres passent facilement inaperçues.
  • Cherchez les confusions courantes : 0 et O, 1, l et I, 5 et S, rn et m, ainsi que les accents manquants.
  • Recollez les mots coupés par un trait d’union en fin de ligne et les lignes brisées à l’intérieur des paragraphes.
  • Supprimez les repères de page, les en-têtes et les numéros de page si vous avez besoin d’un texte continu.
  • Conservez le résultat avec « Copier le texte » ou « Enregistrer en .TXT » ; le fichier enregistré est du texte brut en UTF-8.

Questions fréquentes

Pourquoi une page sort-elle vide ?

La page n’avait pas de couche de texte et l’OCR n’a rien trouvé de lisible : la numérisation est peut-être blanche, très pâle ou trop petite, ou le texte est manuscrit. Essayez une numérisation plus nette, ou convertissez la page avec PDF en JPG et utilisez Image en texte avec ses options de contraste et d’agrandissement.

L’outil peut-il lire des PDF protégés par mot de passe ?

Pas un PDF qui demande un mot de passe à l’ouverture ; l’outil affiche alors une erreur. Si vous y êtes autorisé, ouvrez le fichier avec le mot de passe dans un lecteur PDF et enregistrez d’abord une copie non protégée.

L’outil peut-il créer un PDF interrogeable ?

Non. Le résultat est du texte brut que vous pouvez copier ou enregistrer dans un fichier .txt, et le PDF lui-même n’est pas modifié. Les logiciels qui créent des PDF interrogeables ajoutent une couche de texte OCR invisible au-dessus de chaque page numérisée.

Pourquoi l’OCR est-il lent sur les longs documents ?

Chaque page numérisée est dessinée sous forme d’image et reconnue dans votre navigateur, l’une après l’autre, après le téléchargement du moteur d’OCR et des données de langue. Une page peut prendre plusieurs secondes, voire plus, sur un appareil lent. Les pages qui ont une couche de texte sont bien plus rapides, car elles n’ont pas besoin de reconnaissance.