Gérer les formes SmartArt
Créer une forme SmartArt
Aspose.Slides pour PHP via Java a fourni une API pour créer des formes SmartArt. Pour créer une forme SmartArt dans une diapositive, veuillez suivre les étapes ci-dessous :
- Créez une instance de la classe Presentation.
- Obtenez la référence d’une diapositive en utilisant son Index.
- Ajoutez une forme SmartArt en définissant son LayoutType.
- Enregistrez la présentation modifiée en tant que fichier PPTX.
# Instancier la classe Presentation
$pres = new Presentation();
try {
# Obtenir la première diapositive
$slide = $pres->getSlides()->get_Item(0);
# Ajouter la forme Smart Art
$smart = $slide->getShapes()->addSmartArt(0, 0, 400, 400, SmartArtLayoutType::BasicBlockList);
# Enregistrement de la présentation
$pres->save("SimpleSmartArt.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Figure : Forme SmartArt ajoutée à la diapositive |
Accéder à la forme SmartArt dans la diapositive
Le code suivant sera utilisé pour accéder aux formes SmartArt ajoutées dans la diapositive de la présentation. Dans le code d’exemple, nous parcourrons chaque forme dans la diapositive et vérifierons si c’est une forme SmartArt. Si la forme est de type SmartArt, nous la typons en instance de SmartArt.
# Charger la présentation désirée
$pres = new Presentation("AccessSmartArtShape.pptx");
try {
# Parcourir chaque forme à l'intérieur de la première diapositive
foreach($pres->getSlides()->get_Item(0)->getShapes() as $shape) {
# Vérifier si la forme est de type SmartArt
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Typage de la forme à SmartArtEx
$smart = $shape;
echo("Nom de la forme:" . $smart->getName());
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Accéder à la forme SmartArt avec un type de mise en page particulier
Le code d’exemple suivant vous aidera à accéder à la forme SmartArt avec un LayoutType particulier : veuillez noter que vous ne pouvez pas changer le LayoutType du SmartArt car il est en lecture seule et est défini uniquement lorsque la forme SmartArt est ajoutée.
- Créez une instance de la classe Presentation et chargez la présentation avec la forme SmartArt.
- Obtenez la référence de la première diapositive en utilisant son Index.
- Parcourez chaque forme à l’intérieur de la première diapositive.
- Vérifiez si la forme est de type SmartArt et typifiez la forme sélectionnée en SmartArt si c’est un SmartArt.
- Vérifiez la forme SmartArt avec un LayoutType particulier et effectuez ce qui est requis par la suite.
$pres = new Presentation("AccessSmartArtShape.pptx");
try {
# Parcourir chaque forme à l'intérieur de la première diapositive
foreach($pres->getSlides()->get_Item(0)->getShapes() as $shape) {
# Vérifier si la forme est de type SmartArt
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Typage de la forme à SmartArtEx
$smart = $shape;
# Vérification de la mise en page du SmartArt
if ($smart->getLayout() == SmartArtLayoutType::BasicBlockList) {
echo("Faites quelque chose ici....");
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Changer le style de forme SmartArt
Dans cet exemple, nous allons apprendre à changer le style rapide pour toute forme SmartArt.
- Créez une instance de la classe Presentation et chargez la présentation avec la forme SmartArt.
- Obtenez la référence de la première diapositive en utilisant son Index.
- Parcourez chaque forme à l’intérieur de la première diapositive.
- Vérifiez si la forme est de type SmartArt et typifiez la forme sélectionnée en SmartArt si c’est un SmartArt.
- Trouvez la forme SmartArt avec un style particulier.
- Définissez le nouveau style pour la forme SmartArt.
- Enregistrez la présentation.
# Instancier la classe Presentation
$pres = new Presentation("SimpleSmartArt.pptx");
try {
# Obtenir la première diapositive
$slide = $pres->getSlides()->get_Item(0);
# Parcourir chaque forme à l'intérieur de la première diapositive
foreach($slide->getShapes() as $shape) {
# Vérifier si la forme est de type SmartArt
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Typage de la forme à SmartArtEx
$smart = $shape;
# Vérification du style SmartArt
if ($smart->getQuickStyle() == SmartArtQuickStyleType::SimpleFill) {
# Changer le style SmartArt
$smart->setQuickStyle(SmartArtQuickStyleType::Cartoon);
}
}
}
# Enregistrement de la présentation
$pres->save("ChangeSmartArtStyle.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
Figure : Forme SmartArt avec style modifié |
Changer le style de couleur de la forme SmartArt
Dans cet exemple, nous allons apprendre à changer le style de couleur pour toute forme SmartArt. Dans le code d’exemple suivant, nous accéderons à la forme SmartArt avec un style de couleur particulier et modifierons son style.
- Créez une instance de la classe Presentation et chargez la présentation avec la forme SmartArt.
- Obtenez la référence de la première diapositive en utilisant son Index.
- Parcourez chaque forme à l’intérieur de la première diapositive.
- Vérifiez si la forme est de type SmartArt et typifiez la forme sélectionnée en SmartArt si c’est un SmartArt.
- Trouvez la forme SmartArt avec un style de couleur particulier.
- Définissez le nouveau style de couleur pour la forme SmartArt.
- Enregistrez la présentation.
# Instancier la classe Presentation
$pres = new Presentation("SimpleSmartArt.pptx");
try {
# Obtenir la première diapositive
$slide = $pres->getSlides()->get_Item(0);
# Parcourir chaque forme à l'intérieur de la première diapositive
foreach($slide->getShapes() as $shape) {
# Vérifier si la forme est de type SmartArt
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Typage de la forme à SmartArtEx
$smart = $shape;
# Vérification du type de couleur SmartArt
if ($smart->getColorStyle() == SmartArtColorType::ColoredFillAccent1) {
# Changer le type de couleur SmartArt
$smart->setColorStyle(SmartArtColorType::ColorfulAccentColors);
}
}
}
# Enregistrement de la présentation
$pres->save("ChangeSmartArtColorStyle.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
Figure : Forme SmartArt avec style de couleur modifié |