DEV Community

Liam Anderson
Liam Anderson

Posted on

Comment remplacer des images dans Word avec Python

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, 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 :

pip install Spire.Doc 
Enter fullscreen mode Exit fullscreen mode

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 :

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() 
Enter fullscreen mode Exit fullscreen mode

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 :

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() 
Enter fullscreen mode Exit fullscreen mode

Sujets connexes

Top comments (0)