Page informative, sans valeur de conseil. Installez depuis la source officielle, vérifiez la licence du logiciel et des modèles, et gardez en tête qu'une conversion automatique peut se tromper sur un document complexe : relisez les sorties importantes.
À quoi ça sert
Avant d'alimenter un système RAG, un document doit devenir du texte propre et structuré. Un PDF, pour une machine, n'est souvent qu'un nuage de caractères positionnés : l'ordre de lecture, les colonnes, les cellules d'un tableau ne sont pas explicites. Docling reconstruit cette structure. Il détecte la mise en page, rétablit l'ordre de lecture, reconnaît les tableaux et les formules, et exporte un Markdown, un HTML ou un JSON exploitable.
C'est une brique de préparation, pas une interface de chat. On la place en amont d'outils comme AnythingLLM, Khoj ou de tout pipeline RAG maison. Un meilleur découpage à l'entrée, c'est un retrieval plus pertinent à la sortie.
Ce qui fait sa force
- Une vraie compréhension de la mise en page. Là où un simple extracteur de texte aplatit tout, Docling s'appuie sur des modèles de layout et un modèle dédié de reconnaissance de tableaux (TableFormer) pour préserver la structure : un tableau reste un tableau, un titre reste un titre.
-
Un format pivot unique. Toutes les entrées convergent vers une représentation
interne, le
DoclingDocument, d'où l'on exporte ensuite en Markdown, HTML, JSON ou DocTags. Un seul modèle de données pour des dizaines de formats sources. - Large couverture de formats. PDF (natif et scanné via OCR), DOCX, XLSX, PPTX, HTML, AsciiDoc, Markdown, images — et des schémas spécialisés. La sortie reste cohérente quel que soit l'entrée.
- Local et sans appel réseau pour la conversion. Le traitement se fait sur votre machine. Les modèles nécessaires sont téléchargés une fois, puis le pipeline tourne hors-ligne.
- Une gouvernance solide. Projet initié par l'équipe AI for Knowledge d'IBM Research à Zurich, aujourd'hui hébergé par la LF AI & Data Foundation (Linux Foundation). Un socle pérenne, pas un script de week-end.
Pour qui
Pour les profils techniques (développeurs, data scientists) qui construisent ou affinent un pipeline RAG. Docling s'utilise en ligne de commande ou en Python. Si vous cherchez une solution tout-en-un sans code, AnythingLLM intègre déjà sa propre couche de conversion — Docling vise ceux qui veulent maîtriser cette étape finement.
Installation
Prérequis
Python 3.9 ou supérieur. Un environnement virtuel est vivement recommandé pour isoler les dépendances.
# Créer un environnement virtuel
python -m venv .venv
source .venv/bin/activate # Linux / macOS
.venv\Scripts\activate # Windows
# Installer Docling
pip install docling
Convertir un document en ligne de commande
# Convertir un PDF en Markdown
docling mon-document.pdf
# Traiter plusieurs fichiers vers un dossier de sortie
docling *.pdf --output-dir ./sortie/
Utiliser Docling en Python
from docling.document_converter import DocumentConverter
converter = DocumentConverter()
result = converter.convert("mon-document.pdf")
# Exporter en Markdown structuré
print(result.document.export_to_markdown())
Formats pris en charge
En entrée : PDF (natif et scanné avec OCR), DOCX, XLSX, PPTX, HTML, AsciiDoc, Markdown, images. En
sortie : Markdown, HTML, JSON ou la représentation interne DoclingDocument.
Aller plus loin : OCR et qualité de structure
Pour les PDF scannés (image, sans couche texte), Docling enchaîne sur un moteur d'OCR (EasyOCR par défaut, Tesseract et d'autres au choix selon la configuration). Pour les PDF natifs au texte sélectionnable, il s'appuie sur la couche texte existante — plus rapide et plus fidèle. C'est pourquoi la qualité de sortie dépend d'abord du document d'entrée : un PDF natif donne presque toujours un meilleur résultat qu'un scan de mauvaise résolution.
Points de vigilance
Docling est une brique saine : aucun appel réseau pendant la conversion, le document reste sur la machine. Les vrais points concernent la fidélité de la sortie, pas une fuite de données.
| Point d'attention | Niveau | Ce qu'il faut savoir |
|---|---|---|
| Tableaux et mises en page complexes | 🟡 à relire | TableFormer reconstruit très bien les tableaux courants, mais un tableau imbriqué, fusionné ou multi-pages peut être mal segmenté. Avant d'injecter ces passages dans un RAG, vérifiez-les : une cellule mal placée fausse le retrieval en aval. |
| PDF scannés et OCR | 🟡 selon le scan | Sur un scan basse résolution ou manuscrit, l'OCR produit une transcription dégradée. Privilégiez les PDF natifs (texte sélectionnable) quand ils existent, et contrôlez la sortie des scans. |
| Téléchargement initial des modèles | 🟢 à anticiper | La première conversion télécharge les modèles (layout, table, OCR). En environnement hors-ligne, pré-téléchargez-les selon la documentation officielle avant le premier run. |
| Licence du logiciel | 🟢 MIT | Le code Docling est sous licence MIT (permissive). Les modèles téléchargés ont chacun leur propre licence : à vérifier projet par projet pour un usage commercial. |
Sécurité
-
Installez depuis PyPI ou le dépôt officiel. Méfiez-vous des paquets homonymes sur
des index tiers. Le dépôt de référence est l'organisation
docling-projectsur GitHub. - Anticipez le mode hors-ligne. Les modèles se téléchargent à la première utilisation ; sur un poste isolé, pré-téléchargez-les en suivant la documentation.
- Tenez Docling à jour pour les corrections de bugs et de sécurité, et pour profiter des améliorations de reconnaissance de structure.
Aller plus loin
- AnythingLLM — interroger les documents convertis avec une IA locale.
- Paperless-ngx — archiver et retrouver vos documents avec OCR intégré.
- Khoj — indexer notes et fichiers locaux, avec recherche web.
- OSIALab — vue d'ensemble de tous les outils.
Sources
- Code source & licence (MIT) : github.com/docling-project/docling
- Documentation officielle : docling-project.github.io/docling
- Package PyPI : pypi.org/project/docling