Si un PDF semble correct mais que le collage dans un éditeur de texte brut produit des caractères différents, vérifiez la cause avant de modifier les polices ou d'lancer une reconnaissance OCR. Le mappage entre la forme dessinée sur la page et le caractère qu'elle représente peut être erroné. La correction de ces erreurs de texte PDF commence par identifier la partie de ce processus qui a échoué.
Pourquoi le texte peut-il paraître correct mais être mal copié ?
Le contenu textuel PDF peut stocker des codes de caractères sources spécifiques à la police plutôt que le texte Unicode. Un lecteur PDF utilise la police et les informations de codage pour localiser et dessiner un glyphe. La copie nécessite également de traduire ces codes en caractères significatifs.
Dessiner la lettre A ne garantit donc pas que l'extraction renverra A. ToUnicode est un mappage dans un dictionnaire de polices qui associe les codes de caractères source PDF aux séquences de caractères Unicode. Cette distinction entre l'affichage et l'extraction de texte est décrite dans Référence Adobe PDF, section 5.9.

Que signifie réellement le mappage de polices ?
Ces trois concepts sont liés, mais ils ne sont pas interchangeables :
| Cartographie | Rôle principal |
|---|---|
La table cmap dans un fichier de police | Mappe les codes de caractères aux indices de glyphes ; Les sous-tables Unicode utilisent les codes Unicode |
| Encodage PDF ; les polices composites peuvent utiliser un Encoding CMap | Interprète les codes de caractères source PDF et aide à localiser le glyphe à dessiner |
PDF ToUnicode | Mappe les codes de caractères source PDF au texte Unicode pour la copie et l'extraction |
Pour le premier type, voir la spécification OpenType cmap. La réparation discutée ici cible le troisième ; elle ne reconstruit pas le fichier de police ni ne remplace les glyphes sur la page.
Un mappage ToUnicode manquant ne provoque pas toujours un texte incorrect. Un lecteur PDF peut parfois récupérer du texte à partir d'un encodage standard, de noms de glyphes connus ou d'une collection de caractères. À l’inverse, une table de mappage peut exister et contenir néanmoins des associations incorrectes.
Vérifiez d’abord si le mappage est le problème
Copiez un court passage dans un éditeur de texte brut et comparez-le avec la page originale :
| Symptôme | Que vérifier en premier |
|---|---|
| La page semble correcte, mais les caractères copiés se transforment systématiquement en d'autres caractères | Mappages de caractères manquants ou incorrects |
| Vous pouvez sélectionner uniquement une image, pas du texte | Un calque de texte manquant ou un texte converti en contours ; considérez le fichier source ou une reconnaissance OCR |
| Le texte peut être sélectionné sur une page numérisée, mais il ne correspond pas à l'image | Résultats de la reconnaissance dans le calque de texte OCR |
| Les caractères individuels sont corrects, mais les colonnes ou les tableaux sont dans le désordre | Ordre de lecture et extraction de la mise en page |
| La page elle-même contient des caractères ou des cases manquants | Ressources de polices, couverture de glyphes ou encodage d'affichage |
Il s’agit d’indices de dépannage et non de diagnostics basés uniquement sur l’apparence. L'intégration des polices et la copie correcte sont également des préoccupations distinctes ; voir Intégration et sous-ensembles de polices PDF.
Comment corriger le texte copié en utilisant les glyphes originaux ?
Supposons que le code source <0001> dans une police particulière dessine A mais soit incorrectement mappé à 错 (U+9519). Il s'agit d'un fragment de mappage illustratif, et non d'un fichier CMap complet :
Before: <0001> <9519>
After: <0001> <0041>
<0001> est un code source PDF associé à cette police, pas le caractère Unicode U+0001. Le faire correspondre à U+0041 indique que le glyphe représente A. Une ligature (plusieurs lettres réunies dans un même glyphe) peut aussi correspondre à plusieurs caractères Unicode, par exemple fi.
Une fois que vous avez confirmé que la réparation du mappage est appropriée, utilisez l’outil de réparation de texte PDF :
- Sélectionnez le PDF, puis sélectionnez la police à corriger.
- Comparez les glyphes originaux dans la grille et entrez le texte correct sous chaque glyphe.
- Exportez le PDF réparé et conservez l'original à des fins de comparaison.
Un changement s'applique partout où la même police et le même code source sont utilisés. Vérifiez les polices distinctes séparément, même lorsque leurs noms correspondent. Si l’OCR a mal reconnu un seul mot, le remappage global d'un caractère peut également endommager un texte déjà correct.
Comment vérifier la réparation ?
Rouvrez le fichier exporté, copiez et recherchez un exemple de texte dans votre lecteur PDF cible. Vérifiez les autres occurrences du même code et des mêmes polices que vous n'avez pas modifiées. Comparez l'apparence de la page et inspectez la ponctuation, les ligatures et les chiffres, plutôt que de tester uniquement le premier caractère incorrect.
Certains fichiers PDF utilisent également ActualText pour fournir un texte de remplacement, que les logiciels de support peuvent préférer. Si la modification de ToUnicode ne résout pas le problème, recherchez cette substitution. L'outil actuel avertit de ActualText mais ne le modifie pas. Voir le PDF Explication de l'association.
Pour les erreurs OCR, corrigez ou reconnaissez à nouveau le calque de texte. Si vous disposez du fichier de mise en page d'origine, pensez à le corriger et à exporter un nouveau PDF. Les fichiers qui ne s'ouvriront pas ou ne déclencheront pas d'erreurs structurelles nécessitent une approche différente ; voir quand la réparation du format PDF est appropriée.
Une fois que vous avez identifié un problème de mappage de caractères de police, corrigez-le avec le outil local de réparation de texte PDF. Les fichiers sont traités dans votre navigateur sans les télécharger. Vous devez toujours vérifier le texte copié et l'apparence de la page après l'exportation.


