Convertir plusieurs PDF en Markdown en une seule fois

Par Équipe pdftomd.tools · Mis à jour le · 8 min de lecture

Pour convertir plusieurs PDF en Markdown en une fois, sélectionnez-les tous sur une page de traitement par lots, comme notre convertisseur pour plusieurs PDF, puis téléchargez un ZIP. Pour des centaines de fichiers ou une tâche récurrente, une courte boucle Python fait mieux, et pour les mises en page difficiles, la commande dossier de marker. Quelle que soit la méthode, vérifiez ensuite qu'aucun résultat n'est resté vide.

Illustration : un éventail de fichiers PDF qui se déverse dans une archive ZIP de fichiers Markdown

Choisir la méthode selon le volume

La bonne méthode dépend moins des PDF eux-mêmes que de leur nombre et de la fréquence de la tâche. En gros :

  • De quelques-uns à quelques dizaines, une seule fois : une page de traitement par lots dans le navigateur. Rien à installer, et les fichiers restent sur votre appareil.
  • Des centaines, ou chaque semaine : une boucle Python sur un dossier. Vous pouvez la planifier, la journaliser et garder l'arborescence.
  • Scans, formulaires, formules, mises en page inhabituelles : un outil à base de modèles comme marker. Il est nettement plus lent sur un portable ordinaire. Il est conçu pour lire par OCR les pages sans couche de texte, mais dans notre passage sur CPU il a quand même laissé vide notre page scannée ; testez d'abord quelques fichiers.
Illustration : trois cartes avec des piles de PDF de plus en plus hautes, prises en charge par une fenêtre de navigateur, un terminal et une baie de serveurs
Petite pile : le navigateur. Pile récurrente : un script. Pile énorme ou difficile : un outil à base de modèles sur une machine puissante.

Pour comparer équitablement les trois méthodes, nous avons utilisé un jeu de 20 fichiers totalisant 40 pages : douze exemples de tableaux et de mise en page, un guide anglais, un rapport chinois de 11 pages, un rapport de 4 pages avec en-têtes répétés, une page scannée sans couche de texte et deux fichiers différents, tous deux nommés notes.pdf, rangés dans deux dossiers. Tout a tourné sur notre machine de build (Linux x86_64, 8 vCPU, 16 GB RAM, no GPU).

Convertir plusieurs PDF en Markdown dans le navigateur

Avant de commencer, ouvrez deux ou trois des PDF et essayez de sélectionner une phrase. Si le texte se sélectionne, le fichier a une couche de texte et toutes les méthodes ci-dessous fonctionnent. Si rien ne se sélectionne, c'est un scan ou une image, et seul un outil d'OCR en tirera des mots. Connaître le mélange à l'avance évite un second passage.

Ouvrez la page de traitement par lots, cliquez sur Choisir des fichiers (ou déposez une sélection sur la zone prévue) et prenez tous les PDF d'un coup. Chaque fichier est converti dans l'onglet, l'un après l'autre, et la page propose un seul ZIP avec un .md par PDF. Comme le travail se fait en local, la vitesse dépend de votre appareil et non d'un envoi. C'est la façon la plus rapide de convertir plusieurs PDF en Markdown quand ils sont tous sur la même machine.

Capture d'écran : convertir plusieurs PDF en Markdown en une fois sur notre page de traitement par lots, liste des résultats avec nombre de pages et de tableaux et le bouton Télécharger le ZIP
Capture d'écran de notre passage sur 20 fichiers : chaque fichier a sa ligne avec le nombre de pages et de tableaux.

Dans nos tests, le jeu complet, du choix des fichiers au ZIP prêt, a pris environ 0,8 seconde dans Chrome 155.0.8059.84 (trois passages, entre 0,8 et 1,0 seconde). Le ZIP contenait 20 fichiers Markdown. Les deux notes.pdf sont sortis en notes.md et notes-2.md, aucun n'a écrasé l'autre, et la page scannée a été signalée dans la liste au lieu d'échouer en silence.

Les limites : un navigateur ne peut pas lire une arborescence de dossiers de lui-même, donc des fichiers venus de plusieurs dossiers se retrouvent côte à côte dans un même ZIP, et les très gros volumes sont limités par la mémoire de l'onglet. Pour quelques centaines de fichiers, découpez la sélection en plusieurs tours ou passez à un script.

Une boucle Python avec pymupdf4llm

Un script Python pour ce travail tient en quelques lignes. Celui-ci convertit un dossier de PDF en Markdown : il parcourt le dossier, garde la même arborescence en sortie (les deux fichiers notes restent donc séparés) et continue si un fichier échoue :

import pathlib, pymupdf4llm

src, out = pathlib.Path("pdfs"), pathlib.Path("markdown")
for pdf in sorted(src.rglob("*.pdf")):
    dest = out / pdf.relative_to(src).with_suffix(".md")
    dest.parent.mkdir(parents=True, exist_ok=True)
    try:
        dest.write_text(pymupdf4llm.to_markdown(str(pdf)), encoding="utf-8")
    except Exception as e:
        print(f"skipped {pdf}: {e}")
Installez avec pip install pymupdf4llm. La bibliothèque est sous AGPL-3.0 ; Artifex vend une licence commerciale.

Avec les mêmes 20 fichiers, la boucle a terminé en 5,3 secondes dans nos tests, démarrage de Python et import de la bibliothèque compris. Elle a écrit 20 fichiers. Deux étaient vides : la page scannée, qui n'a aucun texte lisible, et une page avec un tableau tourné à 90 degrés. Pour des milliers de fichiers, la même boucle peut tourner dans un pool de processus, un par cœur de CPU, puisque chaque fichier est indépendant. Notre guide Python détaille les options pour les tableaux et les plages de pages, et notre comparatif des bibliothèques montre comment pymupdf4llm se situe face à deux alternatives.

La commande dossier de marker

marker propose une commande pour un dossier entier : marker /path/to/pdfs --output_dir out. Elle ne lit que le premier niveau du dossier (le script les liste avec os.listdir), nous avons donc d'abord copié nos fichiers dans un dossier à plat. Options utiles : --workers pour des processus en parallèle, --skip_existing pour reprendre un passage interrompu et --max_files pour un essai.

Avec les réglages par défaut sur notre machine sans GPU, le dossier a pris 5 min 51 s dans nos tests, chargement des modèles compris, et a produit 20 résultats. C'est environ 66 fois plus long que la boucle Python. Il a récupéré le tableau tourné, mais en l'écrivant deux fois, et il a quand même rendu un fichier vide pour la page scannée lors de notre passage. Sur une machine avec un GPU pris en charge, le tableau change ; sur un portable, réservez marker aux fichiers qui en ont besoin.

Noms de fichiers, doublons et arborescence

Illustration : deux dossiers contenant chacun un fichier du même nom, réunis dans un ZIP qui garde deux fichiers Markdown distincts
Deux fichiers, un seul nom : le ZIP doit garder les deux.
  • Doublons : quand vous convertissez beaucoup de PDF à la fois, décidez comment traiter un même nom de fichier dans deux dossiers. Notre page de traitement par lots ajoute un numéro ; la boucle ci-dessus garde les sous-dossiers ; un script naïf écrase le premier fichier sans prévenir.
  • Arborescence : si l'arbre de dossiers a un sens (un dossier par client ou par année), gardez-le, soit avec relative_to comme ci-dessus, soit en utilisant la page de traitement par lots une fois par dossier.
  • Noms : gardez le nom de base du PDF pour le .md, et vous retrouverez toujours la source. Pour plus de lisibilité, renommez plus tard dans votre application de notes.
  • Un ZIP de fichiers Markdown est le plus simple à transmettre à quelqu'un d'autre ; un dossier vaut mieux si la sortie part dans un autre script.

Contrôle qualité : repérer les sorties scannées et vides

Quand on convertit plusieurs PDF en Markdown d'un seul passage, il est facile de rater des problèmes qu'un fichier isolé montrerait tout de suite. Chaque outil de notre test a produit au moins un fichier vide ou presque vide, et aucun ne peut transformer une page illisible en texte sans OCR. Après chaque gros passage, cherchez donc les fichiers trop courts :

# Markdown files under 100 bytes are usually scans or image-only pages
find markdown -name '*.md' -size -100c
À lancer dans le dossier de sortie (ou dans le ZIP décompressé).
Capture d'écran : liste des résultats du lot avec un avertissement sur un fichier ne contenant qu'une image, qui semble scanné et n'a pas de couche de texte
Capture d'écran : le fichier qui n'est qu'une image est signalé dans la liste ; son Markdown indique qu'il n'y a aucun texte extractible.

Ouvrez ensuite quelques résultats au hasard et comparez-les aux PDF : les titres, un tableau, le dernier paragraphe. Si les fichiers partent vers un modèle de conversation, notre article sur le meilleur format de document pour ChatGPT explique pourquoi ce contrôle vaut la peine pour obtenir un Markdown propre.

Nos temps sur 20 fichiers

Les mêmes 20 PDF (40 pages) par trois méthodes, d'après nos tests (19 oct. 2026, CPU uniquement)
MéthodeTempsSortiesSorties videsNoms en double
Notre page de traitement par lots (navigateur)0,8 s20scanned-sample.mdNumérotés (notes, notes-2)
Boucle Python, pymupdf4llm 1.28.25,3 s20rotated.md, scanned-sample.mdGardés dans des sous-dossiers
Commande dossier de marker 2.0.05 min 51 s20scanned-sample.mdDossier à plat seulement (renommés par nous)
Le temps du navigateur va du choix des fichiers au ZIP prêt. Les temps de Python et de marker incluent le démarrage ; pour marker, aussi le chargement des modèles. Une seule machine et un petit jeu : lisez-les comme des ordres de grandeur.

Pour la plupart des gens, la conclusion est simple : pour convertir plusieurs PDF en Markdown d'un coup, commencez dans le navigateur, écrivez un script quand la tâche revient, et gardez l'outil à base de modèles pour les pages que les autres ne savent pas lire.

Sources

  1. PyMuPDF4LLM (README and licence) — Artifex, GitHub
  2. marker (README, licence and model licence) — Datalab, GitHub
  3. pathlib: Path.rglob — Python documentation
  4. find(1) — GNU findutils manual

FAQ

Comment convertir plusieurs PDF en Markdown en une fois ?

Sélectionnez tous les fichiers sur une page de traitement par lots comme la nôtre et téléchargez le ZIP, ou lancez une courte boucle Python sur le dossier. Vérifiez ensuite qu'aucune sortie n'est vide.

Y a-t-il une limite au nombre de fichiers sur la page par lots ?

Pas de nombre fixe ; la limite, c'est la mémoire de votre navigateur. Dans nos tests, 20 fichiers de 40 pages ont pris environ une seconde. Pour des centaines de gros fichiers, procédez par tours ou utilisez un script.

Que deviennent les fichiers qui portent le même nom ?

Notre page par lots numérote le second (notes.md, notes-2.md). Dans un script, c'est vous qui choisissez : garder les sous-dossiers, ajouter un suffixe ou ignorer.

Peut-on convertir des PDF scannés par lots ?

Pas avec un outil qui lit la couche de texte : les scans sortent vides, et notre outil les signale. Il faut une étape d'OCR. marker est fait pour ça, mais dans notre passage sans GPU il a rendu un résultat vide pour notre page scannée ; testez un échantillon avant un gros travail.

Peut-on convertir des PDF en MD par lots de façon planifiée ?

Oui, avec un script. Mettez la boucle Python dans une tâche cron ou planifiée et ajoutez une logique de type --skip_existing pour ne convertir que les nouveaux fichiers.

Mes fichiers sont-ils envoyés avec la page par lots ?

Non. La conversion se fait dans l'onglet du navigateur et le ZIP est créé sur votre appareil.