ASSISTANT
Bien sûr ! Je vais vous fournir un exemple complet de script Python utilisant la bibliothèque `python-pptx` pour créer une présentation PowerPoint. Ce script inclura plusieurs diapositives avec des extraits de texte pour chaque section et des espaces réservés pour les médias (comme les images).
### Prérequis
1. **Installer la bibliothèque `python-pptx`** :
Assurez-vous d'avoir Python installé sur votre machine. Ensuite, installez la bibliothèque via pip :
```bash
pip install python-pptx
```
2. **Préparer le contenu** :
Préparez les textes que vous souhaitez inclure dans chaque section de votre présentation. Vous pouvez également prévoir les emplacements où vous souhaitez insérer des médias.
### Exemple de Script Complet
Voici un exemple complet de script Python pour créer une présentation PowerPoint :
```python
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.enum.text import PP_ALIGN
from pptx.dml.color import RGBColor
# Créer une nouvelle présentation
prs = Presentation()
# Définir les dimensions de la présentation (optionnel)
# prs.slide_width = Inches(16)
# prs.slide_height = Inches(9)
# Définir un titre pour la présentation
title_text = "Titre de la Présentation"
subtitle_text = "Sous-titre ou Nom de l'Auteur"
# Ajouter une diapositive de titre
slide_layout = prs.slide_layouts[0] # Mise en page de titre
slide = prs.slides.add_slide(slide_layout)
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = title_text
subtitle.text = subtitle_text
# Exemple de contenu pour plusieurs sections
sections = [
{
"title": "Introduction",
"content": "Bienvenue à cette présentation. Nous allons aborder les points suivants...",
"media_placeholder": True
},
{
"title": "Section 1: Contexte",
"content": "Dans cette section, nous allons explorer le contexte historique...",
"media_placeholder": True
},
{
"title": "Section 2: Analyse",
"content": "Voici une analyse détaillée des données collectées...",
"media_placeholder": True
},
{
"title": "Conclusion",
"content": "Pour conclure, récapitulons les points principaux et ouvrons sur l'avenir...",
"media_placeholder": True
},
{
"title": "Questions",
"content": "Merci de votre attention. Des questions?",
"media_placeholder": False
}
]
# Fonction pour ajouter une diapositive avec texte et espace pour les médias
def add_section_slide(prs, title, content, media_placeholder=True):
slide_layout = prs.slide_layouts[1] # Mise en page Titre et Contenu
slide = prs.slides.add_slide(slide_layout)
# Définir le titre
slide.shapes.title.text = title
# Ajouter le contenu textuel
content_placeholder = slide.placeholders[1]
text_frame = content_placeholder.text_frame
text_frame.text = content
# Formater le texte (optionnel)
for paragraph in text_frame.paragraphs:
for run in paragraph.runs:
run.font.size = Pt(18)
run.font.name = 'Calibri'
run.font.color.rgb = RGBColor(0, 0, 0)
paragraph.alignment = PP_ALIGN.LEFT
# Ajouter un espace réservé pour les médias si nécessaire
if media_placeholder:
left = Inches(5.5)
top = Inches(1.5)
width = Inches(4)
height = Inches(3)
shape = slide.shapes.add_shape(
MSO_SHAPE.RECTANGLE, left, top, width, height
)
fill = shape.fill
fill.solid()
fill.fore_color.rgb = RGBColor(220, 220, 220) # Gris clair
line = shape.line
line.color.rgb = RGBColor(0, 0, 0) # Noir
text_frame = shape.text_frame
text_frame.text = "Espace Média"
for paragraph in text_frame.paragraphs:
for run in paragraph.runs:
run.font.size = Pt(14)
run.font.bold = True
run.font.color.rgb = RGBColor(128, 128, 128) # Gris
paragraph.alignment = PP_ALIGN.CENTER
from pptx.enum.shapes import MSO_SHAPE
# Ajouter chaque section à la présentation
for section in sections:
add_section_slide(prs, section["title"], section["content"], section["media_placeholder"])
# Enregistrer la présentation
prs.save('presentation_complete.pptx')
print("La présentation a été créée avec succès : 'presentation_complete.pptx'")
```
### Explications du Script
1. **Initialisation de la Présentation** :
```python
prs = Presentation()
```
Crée une nouvelle instance de présentation PowerPoint.
2. **Ajout de la Diapositive de Titre** :
```python
slide_layout = prs.slide_layouts[0] # Mise en page de titre
slide = prs.slides.add_slide(slide_layout)
```
Utilise la mise en page de titre prédéfinie pour ajouter une diapositive de titre.
3. **Définition des Sections** :
Les sections sont définies dans une liste de dictionnaires, chaque dictionnaire contenant le titre, le contenu textuel, et un indicateur pour l'espace média.
4. **Fonction `add_section_slide`** :
Cette fonction ajoute une diapositive pour chaque section avec le titre, le contenu textuel et un espace réservé pour les médias si nécessaire.
- **Titre et Contenu** :
Utilise la mise en page "Titre et Contenu" pour insérer le texte.
- **Formatage du Texte** :
Applique un formatage de base (taille de police, nom, couleur).
- **Espace Réservé pour les Médias** :
Si `media_placeholder` est `True`, un rectangle gris avec le texte "Espace Média" est ajouté à la diapositive pour indiquer où les médias (images, vidéos) peuvent être insérés ultérieurement.
5. **Ajout des Sections à la Présentation** :
```python
for section in sections:
add_section_slide(prs, section["title"], section["content"], section["media_placeholder"])
```
Itère sur chaque section définie et ajoute une diapositive correspondante.
6. **Enregistrement de la Présentation** :
```python
prs.save('presentation_complete.pptx')
```
Sauvegarde la présentation sous le nom `presentation_complete.pptx`.
### Personnalisation
- **Ajout de Médias** :
Vous pouvez remplacer les rectangles gris par des images ou d'autres médias en utilisant les méthodes appropriées de `python-pptx`. Par exemple, pour ajouter une image :
```python
slide.shapes.add_picture('chemin/vers/image.jpg', left, top, width, height)
```
- **Styles et Thèmes** :
Vous pouvez personnaliser davantage les styles, les polices, les couleurs et les mises en page en explorant la documentation de `python-pptx`.
- **Mises en Page Personnalisées** :
Si vous avez une mise en page spécifique en tête, vous pouvez ajuster les positions (`left`, `top`) et les dimensions (`width`, `height`) des éléments ajoutés.
### Conclusion
Ce script vous fournit une base solide pour créer une présentation PowerPoint complète avec du texte et des emplacements réservés pour les médias. Vous pouvez l'adapter en fonction de vos besoins spécifiques en ajoutant plus de sections, en personnalisant le style, ou en intégrant des fonctionnalités supplémentaires.
N'hésitez pas à me demander si vous avez besoin d'aide supplémentaire ou de fonctionnalités spécifiques !