DEV Community

Cover image for Pourquoi le texte de ton PDF ressort en lettres séparées
Amine Affif
Amine Affif

Posted on

Pourquoi le texte de ton PDF ressort en lettres séparées

J'ai généré un PDF depuis du HTML avec Chrome en ligne de commande. À l'œil, il était parfait. Mais quand j'en ai extrait le texte avec un outil basé sur pdf.js, mes titres de section sortaient comme ça :

E X P É R I E N C E
STA C K
Enter fullscreen mode Exit fullscreen mode

Avec pdftotext (poppler), les mêmes mots sortaient entiers. Même fichier, deux lectures.

J'ai regardé l'intérieur du PDF. Dans le mien, Chrome n'écrit pas des mots mais à peu près un caractère par opération : 3 136 opérations d'affichage de texte pour 3 062 repositionnements. Chaque lettre est placée en absolu.

Mes titres avaient un letter-spacing: .13em. En retirant l'interlettrage, les mots sont ressortis entiers dans les deux outils. Je compense en taille de police :

/* avant */
h2 { letter-spacing: .13em; font-size: 8.4pt; }

/* après */
h2 { letter-spacing: 0; font-size: 9pt; }
Enter fullscreen mode Exit fullscreen mode

Un PDF n'est pas du texte, c'est une liste de glyphes positionnés. Qu'il soit beau à l'œil ne garantit pas qu'une machine saura le lire.

Si le texte de ton PDF doit être trouvé, copié ou indexé, teste-le avec au moins deux extracteurs. Un seul peut te dire que tout va bien.

Amine Affif, développeur full-stack à Paris. amineaffif.com

Top comments (1)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.