Comment remplacer des images dans Word avec Python
Tags: python, word, image
Published: 2023-11-13 01:51:24

Microsoft Word est un puissant outil de traitement de texte qui permet aux utilisateurs de combiner du texte et des images pour créer des documents attrayants sur le plan visuel. Parfois, vous pouvez avoir besoin de remplacer ou de mettre à jour une image dans un document Word. Par exemple, si vous souhaitez remplacer une image obsolète ou utiliser une image plus pertinente. Dans cet article, nous allons explorer comment **remplacer des images dans un document Word en utilisant Python**.

## Installer la bibliothèque requise
Pour remplacer des images dans un document Word avec Python, nous pouvons utiliser la bibliothèque [Spire.Doc for Python](https://www.e-iceblue.com/Introduce/doc-for-python.html), qui nous permet de créer, lire, convertir et manipuler des documents Word dans des applications Python.

Avant de commencer, nous devons installer cette bibliothèque. Ouvrez simplement le terminal de votre projet et exécutez la commande pip suivante :
```python
pip install Spire.Doc 
```

## Remplacer des images dans Word avec Python
Une fois la bibliothèque installée, vous pouvez commencer à l'utiliser pour remplacer des images dans des documents Word avec votre application Python. Par exemple, vous pouvez remplacer des images par de nouvelles images ou remplacer des images par du texte.

**Exemple 1. Remplacer une image par une nouvelle image dans Word avec Python**

L'exemple de code suivant montre comment remplacer une image par une autre image dans un document Word en utilisant Python et Spire.Doc for Python :
```python
from spire.doc import * 
from spire.doc.common import * 
 
# Créer un objet Document 
doc = Document() 
 
# Charger un document Word 
doc.LoadFromFile("Data.docx") 
 
# Créer une liste pour stocker les images 
pictures = [] 
 
# Parcourir toutes les sections du document 
for i in range(doc.Sections.Count): 
    sec = doc.Sections.get_Item(i) 
 
    # Parcourir tous les paragraphes de chaque section 
    for j in range(sec.Paragraphs.Count): 
        para = sec.Paragraphs.get_Item(j) 
 
        # Parcourir tous les objets enfants de chaque paragraphe 
        for k in range(para.ChildObjects.Count): 
            docObj = para.ChildObjects.get_Item(k) 
 
            # Trouver les images et les ajouter à la liste 
            if docObj.DocumentObjectType == DocumentObjectType.Picture: 
                pictures.append(docObj) 
 
# Remplacer la première image de la liste par une nouvelle image 
picture = pictures[0] if isinstance(pictures[0], DocPicture) else None 
picture.LoadImage("data.jpg") 
 
# Enregistrer le document résultant 
doc.SaveToFile("ReplaceImage.docx", FileFormat.Docx) 
doc.Close() 
```
**Exemple 2. Remplacer une image par du texte dans Word avec Python**

L'exemple de code suivant montre comment remplacer des images par du texte dans un document Word en utilisant Python et Spire.Doc for Python :
```python
from spire.doc import * 
from spire.doc.common import * 
 
# Créer un objet Document 
doc = Document() 
 
# Charger un document Word 
doc.LoadFromFile("Data.docx") 
 
j = 1 
# Parcourir toutes les sections du document 
for k in range(doc.Sections.Count): 
    sec = doc.Sections.get_Item(k) 
 
    # Parcourir tous les paragraphes de chaque section 
    for m in range(sec.Paragraphs.Count): 
        para = sec.Paragraphs.get_Item(m) 
 
        # Créer une liste pour stocker les images 
        pictures = [] 
 
        # Trouver les images et les ajouter à la liste 
        for x in range(para.ChildObjects.Count): 
            docObj = para.ChildObjects.get_Item(x) 
            if docObj.DocumentObjectType == DocumentObjectType.Picture: 
                pictures.append(docObj) 
 
        # Parcourir toutes les images de la liste et les remplacer par le texte "Voici l'image {indice de l'image}" 
        for pic in pictures: 
            index = para.ChildObjects.IndexOf(pic) 
            textRange = TextRange(doc) 
            textRange.Text = "Voici l'image {0}".format(j) 
            para.ChildObjects.Insert(index, textRange) 
            para.ChildObjects.Remove(pic) 
            j += 1 
 
# Enregistrer le document résultant 
doc.SaveToFile("ReplaceWithText.docx", FileFormat.Docx) 
doc.Close() 
```

## Sujets connexes

- [Python : Insérer des images dans Word](https://www.e-iceblue.com/Tutorials/Python/Spire.Doc-for-Python/Program-Guide/Image-and-Shape/Python-Insert-Images-in-Word.html)
- [Python : Ajouter une couleur de fond ou une image à des documents Word](https://www.e-iceblue.com/Tutorials/Python/Spire.Doc-for-Python/Program-Guide/Page-Background/Python-Add-Background-Color-or-Picture-to-Word-Documents.html)
- [Python : Extraire du texte et des images à partir de documents Word](https://www.e-iceblue.com/Tutorials/Python/Spire.Doc-for-Python/Program-Guide/Text/Python-Extract-Text-and-Images-from-Word-Documents.html)
- [Python : Ajouter des signets à un document Word](https://www.e-iceblue.com/Tutorials/Python/Spire.Doc-for-Python/Program-Guide/Bookmark/Python-Add-Bookmarks-to-a-Word-Document.html)
- [Python : Créer des tableaux dans un document Word](https://www.e-iceblue.com/Tutorials/Python/Spire.Doc-for-Python/Program-Guide/Table/Python-Create-Tables-in-a-Word-Document.html)