Création, édition et analyse de fichiers PPTX
Aperçu
Un utilisateur peut vous demander de créer, modifier ou analyser le contenu d'un fichier .pptx. Un fichier .pptx est essentiellement une archive ZIP contenant des fichiers XML et d'autres ressources que vous pouvez lire ou modifier. Vous disposez de différents outils et workflows pour différentes tâches.
Lecture et analyse du contenu
Extraction de texte
Si vous avez simplement besoin de lire le contenu textuel d'une présentation, vous devez convertir le document en Markdown :
# Convertir le document en Markdown
python -m markitdown chemin-vers-fichier.pptx
Accès XML brut
Vous avez besoin d'un accès XML brut pour : les commentaires, les notes de l'orateur, les mises en page de diapositives, les animations, les éléments de conception et le formatage complexe. Pour toutes ces fonctionnalités, vous devrez décompresser une présentation et lire son contenu XML brut.
Décompresser un fichier
python ooxml/scripts/unpack.py <fichier_office> <répertoire_sortie>
Remarque : Le script unpack.py se trouve à l'emplacement skills/pptx/ooxml/scripts/unpack.py par rapport à la racine du projet. Si le script n'existe pas à ce chemin, utilisez find . -name "unpack.py" pour le localiser.
Structures de fichiers clés
ppt/presentation.xml- Métadonnées principales de la présentation et références aux diapositivesppt/slides/slide{N}.xml- Contenu individuel de chaque diapositive (slide1.xml, slide2.xml, etc.)ppt/notesSlides/notesSlide{N}.xml- Notes de l'orateur pour chaque diapositiveppt/comments/modernComment_*.xml- Commentaires pour des diapositives spécifiquesppt/slideLayouts/- Modèles de mise en page pour les diapositivesppt/slideMasters/- Modèles de diapositive maîtresseppt/theme/- Informations sur le thème et le styleppt/media/- Images et autres fichiers multimédias
Extraction de la typographie et des couleurs
Lorsqu'un exemple de conception est fourni pour émulation : Analysez toujours d'abord la typographie et les couleurs de la présentation en utilisant les méthodes ci-dessous :
- Lire le fichier de thème : Vérifiez
ppt/theme/theme1.xmlpour les couleurs (<a:clrScheme>) et les polices (<a:fontScheme>) - Échantillonner le contenu des diapositives : Examinez
ppt/slides/slide1.xmlpour l'utilisation réelle des polices (<a:rPr>) et des couleurs - Rechercher des motifs : Utilisez grep pour trouver les références de couleur (
<a:solidFill>,<a:srgbClr>) et de police dans tous les fichiers XML
Création d'une nouvelle présentation PowerPoint sans modèle
Lors de la création d'une nouvelle présentation PowerPoint à partir de zéro, utilisez le flux de travail html2pptx pour convertir des diapositives HTML en PowerPoint avec un positionnement précis.
Principes de conception
CRITIQUE : Avant de créer une présentation, analysez le contenu et choisissez des éléments de conception appropriés :
- Tenez compte du sujet : De quoi parle cette présentation ? Quel ton, quelle industrie ou quelle ambiance suggère-t-elle ?
- Vérifiez la marque : Si l'utilisateur mentionne une entreprise/organisation, tenez compte de leurs couleurs et de leur identité de marque
- Adaptez la palette au contenu : Sélectionnez des couleurs qui reflètent le sujet
- Déclarez votre approche : Expliquez vos choix de conception avant d'écrire du code
Exigences :
- ✅ Déclarez votre approche de conception basée sur le contenu AVANT d'écrire du code
- ✅ Utilisez uniquement des polices web-safe : Arial, Helvetica, Times New Roman, Georgia, Courier New, Verdana, Tahoma, Trebuchet MS, Impact
- ✅ Créez une hiérarchie visuelle claire grâce à la taille, au poids et à la couleur
- ✅ Assurez la lisibilité : contraste fort, texte de taille appropriée, alignement propre
- ✅ Soyez cohérent : répétez les motifs, l'espacement et le langage visuel sur toutes les diapositives
Sélection de la palette de couleurs
Choisir les couleurs de manière créative :
- Pensez au-delà des valeurs par défaut : Quelles couleurs correspondent réellement à ce sujet spécifique ? Évitez les choix automatiques.
- Considérez plusieurs angles : Sujet, industrie, ambiance, niveau d'énergie, public cible, identité de marque (si mentionnée)
- Soyez aventureux : Essayez des combinaisons inattendues - une présentation sur la santé ne doit pas forcément être verte, la finance n'a pas besoin d'être bleu marine
- Construisez votre palette : Choisissez 3 à 5 couleurs qui fonctionnent ensemble (couleurs dominantes + tons de soutien + accent)
- Assurez le contraste : Le texte doit être clairement lisible sur les arrière-plans
Exemples de palettes de couleurs (utilisez-les pour stimuler la créativité - choisissez-en une, adaptez-la ou créez la vôtre) :
- Bleu classique : Bleu marine profond (#1C2833), ardoise (#2E4053), argenté (#AAB7B8), blanc cassé (#F4F6F6)
- Sarcelle & Corail : Sarcelle (#5EA8A7), sarcelle foncé (#277884), corail (#FE4447), blanc (#FFFFFF)
- Rouge vif : Rouge (#C0392B), rouge brillant (#E74C3C), orange (#F39C12), jaune (#F1C40F), vert (#2ECC71)
- Rose chaud : Mauve (#A49393), rose (#EED6D3), rose (#E8B4B8), crème (#FAF7F2)
- Bourgogne luxe : Bourgogne (#5D1D2E), cramoisi (#951233), rouille (#C15937), or (#997929)
- Violet profond & Émeraude : Violet (#B165FB), bleu foncé (#181B24), émeraude (#40695B), blanc (#FFFFFF)
- Crème & Vert forêt : Crème (#FFE1C7), vert forêt (#40695B), blanc (#FCFCFC)
- Rose & Violet : Rose (#F8275B), corail (#FF574A), rose (#FF737D), violet (#3D2F68)
- Citron vert & Prune : Citron vert (#C5DE82), prune (#7C3A5F), corail (#FD8C6E), bleu-gris (#98ACB5)
- Noir & Or : Or (#BF9A4A), noir (#000000), crème (#F4F6F6)
- Sauge & Terre cuite : Sauge (#87A96B), terre cuite (#E07A5F), crème (#F4F1DE), charbon (#2C2C2C)
- Charbon & Rouge : Charbon (#292929), rouge (#E33737), gris clair (#CCCBCB)
- Orange vif : Orange (#F96D00), gris clair (#F2F2F2), charbon (#222831)
- Vert forêt : Noir (#191A19), vert (#4E9F3D), vert foncé (#1E5128), blanc (#FFFFFF)
- Arc-en-ciel rétro : Violet (#722880), rose (#D72D51), orange (#EB5C18), ambre (#F08800), or (#DEB600)
- Terreux vintage : Moutarde (#E3B448), sauge (#CBD18F), vert forêt (#3A6B35), crème (#F4F1DE)
- Rose côtier : Vieux rose (#AD7670), castor (#B49886), coquille d'œuf (#F3ECDC), gris cendré (#BFD5BE)
- Orange & Turquoise : Orange clair (#FC993E), turquoise grisâtre (#667C6F), blanc (#FCFCFC)
Options de détails visuels
Motifs géométriques :
- Séparateurs de sections diagonaux au lieu d'horizontaux
- Largeurs de colonnes asymétriques (30/70, 40/60, 25/75)
- En-têtes de texte pivotés à 90° ou 270°
- Cadres circulaires/hexagonaux pour les images
- Formes triangulaires d'accentuation dans les coins
- Formes qui se chevauchent pour la profondeur
Traitements des bordures et des cadres :
- Bordures épaisses d'une seule couleur (10-20pt) sur un seul côté
- Bordures à double ligne avec des couleurs contrastées
- Supports d'angle au lieu de cadres complets
- Bordures en forme de L (haut+gauche ou bas+droite)
- Accents de soulignement sous les titres (3-5pt d'épaisseur)
Traitements typographiques :
- Contraste de taille extrême (titres 72pt vs corps 11pt)
- Titres en majuscules avec un large espacement des lettres
- Sections numérotées dans une police d'affichage surdimensionnée
- Monospace (Courier New) pour les données/statistiques/contenu technique
- Polices condensées (Arial Narrow) pour les informations denses
- Texte en contour pour l'emphase
Style des graphiques et des données :
- Graphiques monochromes avec une seule couleur d'accent pour les données clés
- Graphiques à barres horizontales au lieu de verticales
- Nuages de points au lieu de graphiques à barres
- Quadrillage minimal ou inexistant
- Étiquettes de données directement sur les éléments (pas de légendes)
- Nombres surdimensionnés pour les indicateurs clés
Innovations de mise en page :
- Images à fond perdu avec superposition de texte
- Colonne latérale (20-30% de largeur) pour la navigation/contexte
- Systèmes de grille modulaires (blocs 3×3, 4×4)
- Flux de contenu en Z ou en F
- Boîtes de texte flottantes sur des formes colorées
- Mises en page multi-colonnes de type magazine
Traitements d'arrière-plan :
- Blocs de couleur unie occupant 40 à 60 % de la diapositive
- Remplissages dégradés (verticaux ou diagonaux uniquement)
- Arrière-plans divisés (deux couleurs, diagonal ou vertical)
- Bandes de couleur bord à bord
- Espace négatif comme élément de conception
Conseils de mise en page
Lors de la création de diapositives avec des graphiques ou des tableaux :
- Mise en page à deux colonnes (PRÉFÉRÉE) : Utilisez un en-tête sur toute la largeur, puis deux colonnes en dessous - texte/puces dans une colonne et le contenu vedette dans l'autre. Cela offre un meilleur équilibre et rend les graphiques/tableaux plus lisibles. Utilisez flexbox avec des largeurs de colonnes inégales (par exemple, répartition 40%/60 %) pour optimiser l'espace pour chaque type de contenu.
- Mise en page pleine diapositive : Laissez le contenu vedette (graphique/tableau) occuper toute la diapositive pour un impact et une lisibilité maximaux
- NE JAMAIS empiler verticalement : Ne placez pas les graphiques/tableaux sous le texte dans une seule colonne - cela entraîne une mauvaise lisibilité et des problèmes de mise en page
Flux de travail
- OBLIGATOIRE - LIRE LE FICHIER EN ENTIER : Lisez
html2pptx.mdcomplètement du début à la fin. NE JAMAIS définir de limites de plage lors de la lecture de ce fichier. Lisez l'intégralité du fichier pour obtenir la syntaxe détaillée, les règles de formatage critiques et les meilleures pratiques avant de procéder à la création de la présentation. - Créez un fichier HTML pour chaque diapositive avec des dimensions appropriées (par exemple, 720pt × 405pt pour 16:9)
- Utilisez
<p>,<h1>-<h6>,<ul>,<ol>pour tout le contenu textuel - Utilisez
class="placeholder"pour les zones où des graphiques/tableaux seront ajoutés (rendez-les avec un fond gris pour la visibilité) - CRITIQUE : Rastérisez d'abord les dégradés et les icônes en images PNG à l'aide de Sharp, puis référencez-les dans le HTML
- MISE EN PAGE : Pour les diapositives avec graphiques/tableaux/images, utilisez soit une mise en page pleine diapositive, soit une mise en page à deux colonnes pour une meilleure lisibilité
- Utilisez
- Créez et exécutez un fichier JavaScript en utilisant la bibliothèque
html2pptx.jspour convertir les diapositives HTML en PowerPoint et enregistrer la présentation- Utilisez la fonction
html2pptx()pour traiter chaque fichier HTML - Ajoutez des graphiques et des tableaux aux zones réservées à l'aide de l'API PptxGenJS
- Enregistrez la présentation en utilisant
pptx.writeFile()
- Utilisez la fonction
- Validation visuelle : Générez des vignettes et inspectez les problèmes de mise en page
- Créez une grille de vignettes :
python scripts/thumbnail.py output.pptx workspace/thumbnails --cols 4 - Lisez et examinez attentivement l'image de la vignette pour détecter :
- Texte tronqué : Texte coupé par les barres d'en-tête, les formes ou les bords de la diapositive
- Chevauchement de texte : Texte qui chevauche d'autres textes ou formes
- Problèmes de positionnement : Contenu trop proche des limites de la diapositive ou d'autres éléments
- Problèmes de contraste : Contraste insuffisant entre le texte et les arrière-plans
- Si des problèmes sont détectés, ajustez les marges/l'espacement/les couleurs du HTML et régénérez la présentation
- Répétez jusqu'à ce que toutes les diapositives soient visuellement correctes
- Créez une grille de vignettes :
Modification d'une présentation PowerPoint existante
Lorsque vous modifiez des diapositives dans une présentation PowerPoint existante, vous devez travailler avec le format Office Open XML (OOXML) brut. Cela implique de décompresser le fichier .pptx, de modifier le contenu XML, puis de le recompresser.
Flux de travail
- OBLIGATOIRE - LIRE LE FICHIER EN ENTIER : Lisez
ooxml.md(~500 lignes) complètement du début à la fin. NE JAMAIS définir de limites de plage lors de la lecture de ce fichier. Lisez l'intégralité du fichier pour obtenir des conseils détaillés sur la structure OOXML et les workflows d'édition avant toute modification de la présentation. - Décompressez la présentation :
python ooxml/scripts/unpack.py <fichier_office> <répertoire_sortie> - Modifiez les fichiers XML (principalement
ppt/slides/slide{N}.xmlet les fichiers associés) - CRITIQUE : Validez immédiatement après chaque modification et corrigez toute erreur de validation avant de continuer :
python ooxml/scripts/validate.py <répertoire> --original <fichier> - Compressez la présentation finale :
python ooxml/scripts/pack.py <répertoire_entrée> <fichier_office>
Création d'une nouvelle présentation PowerPoint à l'aide d'un modèle
Lorsque vous devez créer une présentation qui suit la conception d'un modèle existant, vous devrez dupliquer et réorganiser les diapositives du modèle avant de remplacer le contenu réservé.
Flux de travail
-
Extraire le texte du modèle ET créer une grille de vignettes visuelles :
- Extraire le texte :
python -m markitdown modèle.pptx > modèle-contenu.md - Lire
modèle-contenu.md: Lisez l'intégralité du fichier pour comprendre le contenu de la présentation modèle. NE JAMAIS définir de limites de plage lors de la lecture de ce fichier. - Créer des grilles de vignettes :
python scripts/thumbnail.py modèle.pptx - Voir la section Création de grilles de vignettes pour plus de détails
- Extraire le texte :
-
Analyser le modèle et enregistrer l'inventaire dans un fichier :
- Analyse visuelle : Examinez la ou les grilles de vignettes pour comprendre les mises en page, les motifs de conception et la structure visuelle des diapositives
- Créez et enregistrez un fichier d'inventaire du modèle nommé
template-inventory.mdcontenant :# Analyse de l'inventaire du modèle **Nombre total de diapositives : [compte]** **IMPORTANT : Les diapositives sont indexées à partir de 0 (première diapositive = 0, dernière diapositive = compte-1)** ## [Nom de la catégorie] - Diapositive 0 : [Code de mise en page si disponible] - Description/objectif - Diapositive 1 : [Code de mise en page] - Description/objectif - Diapositive 2 : [Code de mise en page] - Description/objectif [... CHAQUE diapositive doit être listée individuellement avec son index ...] - Utilisation de la grille de vignettes : Référencez les vignettes visuelles pour identifier :
- Les motifs de mise en page (diapositives de titre, mises en page de contenu, séparateurs de sections)
- Les emplacements et le nombre d'espaces réservés pour les images
- La cohérence de conception entre les groupes de diapositives
- La hiérarchie visuelle et la structure
- Ce fichier d'inventaire est OBLIGATOIRE pour sélectionner les modèles appropriés à l'étape suivante
-
Créer le plan de la présentation basé sur l'inventaire du modèle :
- Passez en revue les modèles disponibles de l'étape 2.
- Choisissez un modèle d'introduction ou de titre pour la première diapositive. Celui-ci doit être l'un des premiers modèles.
- Choisissez des mises en page sûres et basées sur du texte pour les autres diapositives.
- CRITIQUE : Faire correspondre la structure de la mise en page au contenu réel :
- Mises en page à une colonne : Utilisez-les pour un récit unifié ou un sujet unique
- Mises en page à deux colonnes : Utilisez-les UNIQUEMENT lorsque vous avez exactement 2 éléments/concepts distincts
- Mises en page à trois colonnes : Utilisez-les UNIQUEMENT lorsque vous avez exactement 3 éléments/concepts distincts
- Mises en page image + texte : Utilisez-les UNIQUEMENT lorsque vous avez des images réelles à insérer
- Mises en page de citation : Utilisez-les UNIQUEMENT pour des citations réelles de personnes (avec attribution), jamais pour l'emphase
- N'utilisez jamais de mises en page avec plus d'espaces réservés que vous n'avez de contenu
- Si vous avez 2 éléments, ne les forcez pas dans une mise en page à 3 colonnes
- Si vous avez 4 éléments ou plus, envisagez de les répartir sur plusieurs diapositives ou d'utiliser un format de liste
- Comptez vos éléments de contenu réels AVANT de sélectionner la mise en page
- Vérifiez que chaque espace réservé dans la mise en page choisie sera rempli avec du contenu significatif
- Sélectionnez une option représentant la meilleure mise en page pour chaque section de contenu.
- Enregistrez
outline.mdavec le contenu ET la correspondance du modèle qui exploite les conceptions disponibles - Exemple de correspondance de modèle :
…
[tronqué pour la traduction]