Convertir ses PDF avant de les donner à lire
Un PDF envoyé brut coûte cher et se lit mal. Le convertir en Markdown change la qualité des réponses.
Un PDF est un format d'impression : il décrit des positions de caractères sur une page, pas une structure de document. Donné tel quel à un modèle, il coûte cher et se lit mal. Les tableaux se mélangent, les colonnes s'entrelacent, les notes de bas de page s'insèrent au milieu des phrases.
Le convertir en Markdown avant de le donner change la qualité des réponses plus que n'importe quel prompt.
Pourquoi la conversion aide
| Problème du PDF brut | Ce que le Markdown règle |
|---|---|
| Deux colonnes lues en zigzag | Un seul flux de texte, dans l'ordre |
| Tableaux transformés en soupe de mots | Une vraie structure de tableau |
| Titres indiscernables du corps | Hiérarchie explicite, citable |
| Volume de tokens élevé | Moins de bruit, plus de signal |
Avant de commencer
- Un PDF texte, pas un scan (voir plus bas pour les scans)
- Python ou Node selon l'outil choisi
- Dix minutes
1Reconnaître ce qu'on a
Ouvre le PDF et essaie de sélectionner une phrase.
- La sélection fonctionne : c'est un PDF texte, la conversion sera propre.
- Rien ne se sélectionne : c'est une image, il faut de la reconnaissance de caractères avant tout le reste.
Ne saute pas cette vérification. Convertir un scan avec un outil pour PDF texte produit un fichier vide, et on cherche l'erreur ailleurs.
2Convertir un PDF texte
Le plus direct, en Python :
pip install pymupdf4llm
python -c "import pymupdf4llm; open('doc.md','w',encoding='utf-8').write(pymupdf4llm.to_markdown('doc.pdf'))"
La sortie garde les titres, les listes et les tableaux. Pour un document long, la conversion page par page permet de garder la numérotation, utile pour citer une source :
import pymupdf4llm
pages = pymupdf4llm.to_markdown("doc.pdf", page_chunks=True)
with open("doc.md", "w", encoding="utf-8") as f:
for i, page in enumerate(pages, start=1):
f.write(f"\n\n<!-- page {i} -->\n\n")
f.write(page["text"])
Garder la trace des pages
Ces marqueurs de page ne coûtent presque rien et permettent au modèle de citer « page 14 » au lieu de « quelque part dans le document ».
3Relire la conversion
Aucun convertisseur n'est parfait. Trois points à vérifier avant d'utiliser le résultat :
- Les tableaux. C'est ce qui casse le plus souvent. Un tableau raté produit des réponses fausses avec assurance.
- L'ordre de lecture. Sur une mise en page à deux colonnes, vérifie qu'un paragraphe n'est pas coupé par le début du suivant.
- Les en-têtes et pieds de page répétés. Ils polluent le texte à chaque page ; un
sedsuffit à les retirer.
4Découper avant de donner à lire
Un Markdown de 300 pages reste trop gros pour être utile d'un bloc. Découpe par section, en gardant les titres comme frontières :
Decoupe doc.md en fichiers par titre de niveau 2, un fichier par section,
nommes d'apres le titre. Garde les marqueurs de page.
Ensuite, on ne donne à lire que la ou les sections utiles. C'est la différence entre payer 300 pages et en payer trois.
Le cas des scans
Si rien ne se sélectionne, il faut d'abord reconnaître le texte :
ocrmypdf --language fra scan.pdf scan-texte.pdf
Le PDF de sortie contient une couche de texte, et redevient convertible avec la méthode ci-dessus.
La reconnaissance se trompe
Sur un scan de mauvaise qualité, les chiffres souffrent en premier. Ne fonde pas un calcul sur des montants issus d'un OCR sans les vérifier à l'œil.
Quelques prompts pour aller plus loin
| Objectif | Prompt à adapter |
|---|---|
| Nettoyer | Retire de ce Markdown les en-tetes et pieds de page qui se repetent a chaque page. |
| Vérifier un tableau | Compare le tableau de la page 12 du PDF et sa version Markdown. Signale toute valeur qui differe. |
| Résumer avec sources | Resume la section [TITRE] en dix lignes, en citant les numeros de page. |
| Extraire du structuré | Extrais de ce document un tableau [COLONNES]. Si une valeur est absente, ecris "non renseigne" plutot que de deviner. |
Tu as d’autres ressources comme ça ?
Ce que tu viens de lire est entièrement gratuit. Une nouvelle ressource part chaque semaine dans la newsletter : guides, modèles à copier et liens triés, sans compte à créer.
Me contacter
Une question, un projet, une envie de collaborer ? Écris-moi.
Cette page est en accès libre, n’hésite pas à la partager.