Convertir un document au format Markdown avec MarkItDown : Word, PDF, PowerPoint, Excel, etc.
Sommaire
I. Présentation
Dans ce tutoriel, nous allons apprendre à convertir un fichier au format Markdown à l’aide de l’outil MarkItDown développé par Microsoft. Il s’agit plus précisément d’une librairie Python capable de transformer un document source en code Markdown.
Les formats de fichiers suivants sont pris en charge :
- PDF (.pdf)
- PowerPoint (.pptx)
- Word (.docx)
- Excel (.xlsx)
- Images (métadonnées EXIF et OCR)
- Audio (métadonnées EXIF et transcription vocale)
- HTML (traitement spécial de Wikipédia, etc.)
- Divers autres formats de fichiers textes : CSV, JSON, XML, etc.
Il est même possible de configurer MarkItDown pour qu’il sollicite l’IA dans le but d’analyser et de décrire une image ! Pour utiliser cet outil, vous devez disposer d’un environnement Python, ou vous pouvez utiliser le site de démonstration mis à disposition par Matt Palmer :
Vous pouvez également retrouver le GitHub de ce projet :
Dans la suite de cet article, nous verrons comment installer MarkItDown et comment convertir un fichier Word au format Markdown.
II. Prise en main de MarkItDown
A. Installation de MarkItDown
Pour ma part, je vais utiliser Ubuntu par l’intermédiaire de Windows Subsystem for Linux pour installer et utiliser MarkItDown. Nous n’aborderons pas l’installation de Python et de Pip en eux-mêmes. Si vous avez besoin d’aide quant à la mise en place d’un environnement Python avec WSL, consultez cet article :
Nous allons installer le paquet python3-venv afin de pouvoir créer un environnement virtuel pour ce projet. Cela permet d’isoler les dépendances et bibliothèques Python nécessaires au projet, afin de ne pas interférer avec les autres projets ou la configuration globale de votre système.
Ici, nous créons un répertoire nommé “python-projects” dans “/home/flo/“. Ce répertoire sera utilisé pour stocker le projet Python.
Ensuite, déplaçons-nous dans le répertoire fraichement créé :
La commande ci-dessous crée un environnement virtuel dans un sous-répertoire nommé “.markitdown” (vous pouvez utiliser un autre nom). L’environnement virtuel contient une copie indépendante de Python et des outils nécessaires pour gérer les bibliothèques spécifiques au projet.
Puis, nous devons activer l’environnement virtuel :
Cette commande active l’environnement virtuel. Une fois activé :
- Les commandes Python (comme python ou pip) utiliseront cet environnement virtuel plutôt que la version système globale.
- Une indication apparaîtra dans le prompt de votre terminal pour montrer que vous êtes dans l’environnement virtuel.
Ainsi, après l’activation de l’environnement virtuel, votre prompt dans le terminal devrait ressembler à ceci :
Par la suite, pour désactiver l’environnement virtuel et revenir au contexte système global, vous pouvez exécuter la commande suivante :
Passons à la dernière étape : l’installation du paquet MarkItDown via Pip ainsi que l’installation du paquet “ffmpeg” au niveau de Linux, car la librairie en a besoin.
Voilà, MarkItDown est prêt à l’utilisation !
B. Convertir un fichier au format MarkDown
Il n’existe pas de commande prête à l’emploi pour utiliser MarkItDown : il s’agit d’une bibliothèque qu’il est possible d’utiliser au sein de scripts Python. C’est ce que nous allons faire en reprenant simplement l’exemple mis à disposition par Microsoft sur son GitHub.
Créez et éditez un fichier Python nommé “MarkItDown.py” :
Ajoutez le code suivant à ce fichier :
L’exemple ci-dessus sous-entend que nous allons convertir au format MarkDown le fichier nommé “Document.docx“, qui est un fichier Word.
Ce fichier Word contient l’introduction de ce tutoriel et il ressemble à ceci :
Désormais, il ne reste plus qu’à exécuter notre script Python (le document Word a été positionné dans le répertoire “python-projects“).
Le résultat est retourné dans la console :
Si l’on copie ce code dans Visual Studio Code et que l’on affiche sur le bouton de prévisualisation, nous pouvons constater que nous obtenons le résultat attendu !
Plutôt que d’afficher le code Markdown dans la console, vous pouvez modifier le script Python pour qu’un fichier de sortie (Document.md) soit créé :
Le résultat sera le même, mais cela permet d’enregistrer la sortie dans un fichier, à la place du retour console.
III. Conclusion
La librairie Python MarkItDown développée par Microsoft s’avère très utile pour convertir différents formats de fichiers au format Markdown, un langage universel qui s’est imposé dans le monde de l’IT ! Le fait que ce soit accessible à partir de scripts Python ouvre la porte à divers cas d’usage et l’intégration avec des outils et des scripts existants.
Qu’en pensez-vous ?