Comment extraire toutes les images d’un document Word ?
I. Présentation
Dans ce tutoriel, nous allons apprendre à extraire toutes les images contenues dans un document Word. Une astuce très pratique qui évite de devoir récupérer les images une par une. Un gain de temps en perspective pour les personnes qui ont souvent besoin d'effectuer cette manipulation sur des fichiers DOCX. Personnellement, j'utilise régulièrement cette méthode lorsqu'un rédacteur du site me transmet le brouillon d'un article au format Word.
Nous verrons comment procéder manuellement via l'interface graphique de Windows. Pour les personnes plus à l'aise, je vais également communiquer un bout de code PowerShell permettant de le faire de façon automatique.
Avant de commencer, effectuez une copie du fichier Word par précaution.
II. Méthode manuelle
Tout d'abord, nous devons modifier l'extension du fichier qui, dans cet exemple, s'appelle "document.docx". Effectuez un clic droit "Renommer" sur le fichier dans l'Explorateur de fichiers, ou appuyez sur la touche "F2" du clavier. Remplacez l'extension ".docx" par ".zip". Si l'extension n'est pas visible, vous devez configurer l'Explorateur de fichiers pour qu'il l'affiche (Afficher > Extensions de noms de fichiers).
La fenêtre "Voulez-vous vraiment modifier l'extension ?" va apparaître. Cliquez sur "Oui".
Ensuite, maintenant que le document Word est au format archive, nous allons extraire le contenu du ZIP. Effectuez un clic droit et cliquez sur "Extraire tout...". Une fenêtre de confirmation apparaît. Cliquez sur "Extraire" : par défaut le contenu sera stocké dans le même répertoire que le document avec un dossier qui reprend le nom du document.
Accédez au dossier créé, dans mon cas "Documents", afin de parcourir le contenu de l'archive. Les images se situent dans "Word" puis "media" comme vous pouvez le voir ci-dessous :
Voilà, vous venez de récupérer l'ensemble des images de votre document Word ! Vous pouvez modifier de nouveau l'extension du document pour remettre ".docx" ou tout simplement supprimer cette version si vous avez bien fait une copie au préalable.
III. Méthode automatique avec PowerShell
Pour les personnes adeptes du scripting, vous pouvez créer un script qui va permettre d'extraire le contenu du fichier Word.
Voici le contenu du fichier "Extract-ImagesFromWord.ps1" :
param([ValidateScript({Test-Path $_})]$File) Rename-Item -Path $File -NewName "$File.zip" if(Test-Path -Path "$File.zip"){ Expand-Archive -Path "$File.zip" -DestinationPath "C:\TEMP\ImagesWord" Rename-Item -Path "$File.zip" -NewName $File }
Ce bout de code va prendre la peine de renommer le fichier, extraire le contenu, puis remettre l'extension originale du fichier. Puis, on l'exécutera de cette façon :
.\Extract-ImagesFromWord.ps1 -File "C:\temp\Document.docx"
Toutefois, on peut faire beaucoup plus simple en utilisant uniquement la commande "Expand-Archive" car PowerShell sera capable d'extraire le contenu du document, peu importe s'il est en DOCX ou ZIP. Quand on utilise l'Explorateur de fichiers Windows, on doit renommer le document de manière à ce que l'option "Extraire tout" soit proposée.
Ainsi, la commande ci-dessous, à exécuter dans une console PowerShell, permettra d'extraire le contenu du DOCX sur le même principe que la commande en mode graphique :
Expand-Archive .\Document.docx
Encore plus rapide et pratique qu'avec l'Explorateur de fichiers !
Merci, très utile.
Bonjour,
C’est effectivement la méthode la plus simple (quoi que, certains logiciels de compression de documents peuvent directement dézipper un docx).
Mais certaines images sont stockées sous forme XML et là, je sèche.
En effectuant une sauvegarde du fichier en html, on récupère aussi les images (toutes) mais certaines sont dégradées car l’export se fait en bitmap.
Si vous avez une idée, je suis preneur.
Merci