Appliquer ou modifier les mises en page des diapositives en PHP
Vue d’ensemble
Un modèle de diapositive définit l’agencement des zones réservées et le formatage du contenu sur une diapositive. Il contrôle quelles zones réservées sont disponibles et où elles apparaissent. Les modèles de diapositive vous aident à concevoir des présentations rapidement et de manière cohérente—que vous créiez quelque chose de simple ou de plus complexe. Parmi les modèles de diapositive les plus courants dans PowerPoint, on trouve :
Modèle de diapositive Titre – Comprend deux zones réservées de texte : une pour le titre et une pour le sous-titre.
Modèle Titre et Contenu – Propose une petite zone réservée de titre en haut et une plus grande en dessous pour le contenu principal (texte, puces, graphiques, images, etc.).
Modèle Blanc – Ne contient aucune zone réservée, vous donnant le contrôle total pour concevoir la diapositive à partir de zéro.
Les modèles de diapositive font partie d’un masque de diapositive, qui est la diapositive de niveau supérieur définissant les styles de mise en page pour la présentation. Vous pouvez accéder aux modèles et les modifier via le masque de diapositive—par leur type, leur nom ou leur ID unique. Vous pouvez également éditer directement un modèle de diapositive spécifique dans la présentation.
Pour travailler avec les modèles de diapositive dans Aspose.Slides for PHP, vous pouvez utiliser :
- Des méthodes telles que getLayoutSlides et getMasters de la classe Presentation
- Des types comme LayoutSlide, MasterLayoutSlideCollection, LayoutPlaceholderManager et LayoutSlideHeaderFooterManager
Info
Pour en savoir plus sur la manipulation des masques de diapositive, consultez l’article Slide Master.Ajouter des modèles de diapositive aux présentations
Pour personnaliser l’apparence et la structure de vos diapositives, il peut être nécessaire d’ajouter de nouveaux modèles de diapositive à une présentation. Aspose.Slides for PHP vous permet de vérifier si un modèle spécifique existe déjà, d’en ajouter un si besoin, puis de l’utiliser pour insérer des diapositives basées sur ce modèle.
- Créez une instance de la classe Presentation.
- Accédez à la MasterLayoutSlideCollection.
- Vérifiez si le modèle de diapositive souhaité existe déjà dans la collection. Sinon, ajoutez le modèle dont vous avez besoin.
- Ajoutez une diapositive vide basée sur le nouveau modèle.
- Enregistrez la présentation.
Le code PHP suivant montre comment ajouter un modèle de diapositive à une présentation PowerPoint :
// Instancier la classe Presentation qui représente un fichier PowerPoint.
$presentation = new Presentation("Sample.pptx");
try {
// Parcourir les types de diapositives de mise en page pour sélectionner une diapositive de mise en page.
$layoutSlides = $presentation->getMasters()->get_Item(0)->getLayoutSlides();
$layoutSlide = null;
if (!java_is_null($layoutSlides->getByType(SlideLayoutType::TitleAndObject))) {
$layoutSlide = $layoutSlides->getByType(SlideLayoutType::TitleAndObject);
} else {
$layoutSlide = $layoutSlides->getByType(SlideLayoutType::Title);
}
if (java_is_null($layoutSlide)) {
// Une situation où la présentation ne contient pas tous les types de mise en page.
// Le fichier de présentation ne contient que les types de mise en page Blanc et Personnalisé.
// Cependant, les diapositives de mise en page avec des types personnalisés peuvent avoir des noms reconnaissables,
// comme "Title", "Title and Content", etc., qui peuvent être utilisés pour la sélection de la diapositive de mise en page.
// Vous pouvez également vous appuyer sur un ensemble de types de formes d'espace réservé.
// Par exemple, une diapositive Titre ne doit contenir que le type d'espace réservé Titre, etc.
foreach($layoutSlides as $titleAndObjectLayoutSlide) {
if (java_values($titleAndObjectLayoutSlide->getName()) == "Title and Object") {
$layoutSlide = $titleAndObjectLayoutSlide;
break;
}
}
if (java_is_null($layoutSlide)) {
foreach($layoutSlides as $titleLayoutSlide) {
if (java_values($titleLayoutSlide->getName()) == "Title") {
$layoutSlide = $titleLayoutSlide;
break;
}
}
if (java_is_null($layoutSlide)) {
$layoutSlide = $layoutSlides->getByType(SlideLayoutType::Blank);
if (java_is_null($layoutSlide)) {
$layoutSlide = $layoutSlides->add(SlideLayoutType::TitleAndObject, "Title and Object");
}
}
}
}
// Ajouter une diapositive vide en utilisant la diapositive de mise en page ajoutée.
$presentation->getSlides()->insertEmptySlide(0, $layoutSlide);
// Enregistrer la présentation sur le disque.
$presentation->save("output.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Supprimer les modèles de diapositive inutilisés
Aspose.Slides fournit la méthode removeUnusedLayoutSlides de la classe Compress pour supprimer les modèles de diapositive indésirables et non utilisés.
Le code PHP suivant montre comment supprimer un modèle de diapositive d’une présentation PowerPoint :
$presentation = new Presentation("Presentation.pptx");
try {
Compress::removeUnusedLayoutSlides($presentation);
$presentation->save("Output.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Ajouter des zones réservées aux modèles de diapositive
Aspose.Slides fournit la méthode LayoutSlide.getPlaceholderManager, qui permet d’ajouter de nouvelles zones réservées à un modèle de diapositive.
Ce gestionnaire contient des méthodes pour les types de zones réservées suivants :
| Zone réservée PowerPoint | Méthode LayoutPlaceholderManager |
|---|---|
![]() |
addContentPlaceholder(float x, float y, float width, float height) |
![]() |
addVerticalContentPlaceholder(float x, float y, float width, float height) |
![]() |
addTextPlaceholder(float x, float y, float width, float height) |
![]() |
addVerticalTextPlaceholder(float x, float y, float width, float height) |
![]() |
addPicturePlaceholder(float x, float y, float width, float height) |
![]() |
addChartPlaceholder(float x, float y, float width, float height) |
![]() |
addTablePlaceholder(float x, float y, float width, float height) |
![]() |
addSmartArtPlaceholder(float x, float y, float width, float height) |
![]() |
addMediaPlaceholder(float x, float y, float width, float height) |
![]() |
addOnlineImagePlaceholder(float x, float y, float width, float height) |
Le code PHP suivant montre comment ajouter de nouvelles formes de zones réservées au modèle Blanc :
$presentation = new Presentation();
try {
// Obtenir la diapositive de mise en page vierge.
$layout = $presentation->getLayoutSlides()->getByType(SlideLayoutType::Blank);
// Obtenir le gestionnaire d'espaces réservés de la diapositive de mise en page.
$placeholderManager = $layout->getPlaceholderManager();
// Ajouter différents espaces réservés à la diapositive de mise en page vierge.
$placeholderManager->addContentPlaceholder(20, 20, 310, 270);
$placeholderManager->addVerticalTextPlaceholder(350, 20, 350, 270);
$placeholderManager->addChartPlaceholder(20, 310, 310, 180);
$placeholderManager->addTablePlaceholder(350, 310, 350, 180);
// Ajouter une nouvelle diapositive avec la mise en page vierge.
$newSlide = $presentation->getSlides()->addEmptySlide($layout);
$presentation->save("Placeholders.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Le résultat :

Définir la visibilité du pied de page pour un modèle de diapositive
Dans les présentations PowerPoint, les éléments de pied de page comme la date, le numéro de diapositive et le texte personnalisé peuvent être affichés ou masqués selon le modèle de diapositive. Aspose.Slides for PHP vous permet de contrôler la visibilité de ces zones réservées du pied de page. Cela est utile lorsque vous souhaitez que certains modèles affichent les informations de pied de page tandis que d’autres restent épurés.
- Créez une instance de la classe Presentation.
- Obtenez une référence à un modèle de diapositive par son index.
- Définissez la zone réservée du pied de page comme visible.
- Définissez la zone réservée du numéro de diapositive comme visible.
- Définissez la zone réservée de la date/heure comme visible.
- Enregistrez la présentation.
Le code PHP suivant montre comment définir la visibilité du pied de page d’une diapositive et effectuer les tâches associées :
$presentation = new Presentation("Presentation.ppt");
try {
$headerFooterManager = $presentation->getLayoutSlides()->get_Item(0)->getHeaderFooterManager();
if (!$headerFooterManager->isFooterVisible()) {
$headerFooterManager->setFooterVisibility(true);
}
if (!$headerFooterManager->isSlideNumberVisible()) {
$headerFooterManager->setSlideNumberVisibility(true);
}
if (!$headerFooterManager->isDateTimeVisible()) {
$headerFooterManager->setDateTimeVisibility(true);
}
$headerFooterManager->setFooterText("Footer text");
$headerFooterManager->setDateTimeText("Date and time text");
$presentation->save("Presentation.ppt", SaveFormat::Ppt);
} finally {
$presentation->dispose();
}
Définir la visibilité du pied de page enfant pour une diapositive
Dans les présentations PowerPoint, les éléments de pied de page tels que la date, le numéro de diapositive et le texte personnalisé peuvent être contrôlés au niveau du masque de diapositive afin d’assurer la cohérence sur tous les modèles de diapositive. Aspose.Slides for PHP vous permet de régler la visibilité et le contenu de ces zones réservées du pied de page sur le masque de diapositive et de propager ces paramètres à toutes les diapositives modèles enfants. Cette approche garantit une information de pied de page uniforme tout au long de votre présentation.
- Créez une instance de la classe Presentation.
- Obtenez une référence au masque de diapositive par son index.
- Définissez les zones réservées du pied de page du masque et de tous les modèles enfants comme visibles.
- Définissez les zones réservées du numéro de diapositive du masque et de tous les modèles enfants comme visibles.
- Définissez les zones réservées de la date/heure du masque et de tous les modèles enfants comme visibles.
- Enregistrez la présentation.
Le code PHP suivant montre cette opération :
$presentation = new Presentation("presentation.ppt");
try {
$headerFooterManager = $presentation->getMasters()->get_Item(0)->getHeaderFooterManager();
$headerFooterManager->setFooterAndChildFootersVisibility(true);
$headerFooterManager->setSlideNumberAndChildSlideNumbersVisibility(true);
$headerFooterManager->setDateTimeAndChildDateTimesVisibility(true);
$headerFooterManager->setFooterAndChildFootersText("Footer text");
$headerFooterManager->setDateTimeAndChildDateTimesText("Date and time text");
$presentation->save("Output.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
FAQ
Quelle est la différence entre un masque de diapositive et un modèle de diapositive ?
Un masque de diapositive définit le thème global et le formatage par défaut, tandis que les modèles de diapositive définissent des agencements spécifiques de zones réservées pour différents types de contenu.
Puis‑je copier un modèle de diapositive d’une présentation à une autre ?
Oui, vous pouvez cloner un modèle de diapositive à partir de la collection de modèles d’une présentation, accessible via la méthode getLayoutSlides, puis l’insérer dans une autre présentation à l’aide de la méthode addClone.
Que se passe‑t‑il si je supprime un modèle de diapositive qui est encore utilisé par une diapositive ?
Si vous essayez de supprimer un modèle de diapositive qui est encore référencé par au moins une diapositive de la présentation, Aspose.Slides lèvera une PptxEditException. Pour éviter cela, utilisez removeUnusedLayoutSlides qui supprime en toute sécurité uniquement les modèles de diapositive non utilisés.









