Gérer les graphiques SmartArt dans les présentations avec PHP
Créer une forme SmartArt
Aspose.Slides for 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éer une instance de la classe Presentation.
- Obtenir la référence d’une diapositive en utilisant son Index.
- Ajouter une forme SmartArt en définissant son LayoutType.
- Enregistrer la présentation modifiée au format PPTX.
# Instancier la classe Presentation
$pres = new Presentation();
try {
# Obtenir la première diapositive
$slide = $pres->getSlides()->get_Item(0);
# Ajouter une forme SmartArt
$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 à une forme SmartArt sur une 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 de la diapositive et vérifierons s’il s’agit d’une forme SmartArt. Si la forme est du type SmartArt, nous la convertirons en instance SmartArt.
# Charger la présentation souhaité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"))) {
# Convertir la forme en SmartArtEx
$smart = $shape;
echo("Shape Name:" . $smart->getName());
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Accéder à une forme SmartArt avec un type de disposition particulier
Le code d’exemple suivant aidera à accéder à la forme SmartArt avec un LayoutType particulier. Veuillez noter que vous ne pouvez pas modifier le LayoutType du SmartArt car il est en lecture seule et ne est défini que lors de l’ajout de la forme SmartArt.
- Créer une instance de la classe Presentation et charger la présentation contenant une forme SmartArt.
- Obtenir la référence de la première diapositive en utilisant son Index.
- Parcourir chaque forme de la première diapositive.
- Vérifier si la forme est du type [SmartArt] et convertir la forme sélectionnée en SmartArt si c’est le cas.
- Vérifier la forme SmartArt avec le LayoutType particulier et effectuer les actions requises 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"))) {
# Convertir la forme en SmartArtEx
$smart = $shape;
# Vérifier la disposition SmartArt
if ($smart->getLayout() == SmartArtLayoutType::BasicBlockList) {
echo("Do some thing here....");
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Modifier le style d’une forme SmartArt
Dans cet exemple, nous apprendrons à modifier le style rapide d’une forme SmartArt.
- Créer une instance de la classe Presentation et charger la présentation contenant une forme SmartArt.
- Obtenir la référence de la première diapositive en utilisant son Index.
- Parcourir chaque forme de la première diapositive.
- Vérifier si la forme est du type [SmartArt] et convertir la forme sélectionnée en SmartArt si c’est le cas.
- Trouver la forme SmartArt avec un style particulier.
- Définir le nouveau style pour la forme SmartArt.
- Enregistrer 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"))) {
# Convertir la forme en SmartArtEx
$smart = $shape;
# Vérifier le style SmartArt
if ($smart->getQuickStyle() == SmartArtQuickStyleType::SimpleFill) {
# Modifier le style SmartArt
$smart->setQuickStyle(SmartArtQuickStyleType::Cartoon);
}
}
}
# Enregistrer la présentation
$pres->save("ChangeSmartArtStyle.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
![]() |
|---|
| Figure : forme SmartArt avec style modifié |
Modifier le style de couleur d’une forme SmartArt
Dans cet exemple, nous apprendrons à modifier le style de couleur d’une forme SmartArt. Le code d’exemple suivant accédera à la forme SmartArt avec un style de couleur particulier et en modifiera le style.
- Créer une instance de la classe Presentation et charger la présentation contenant une forme SmartArt.
- Obtenir la référence de la première diapositive en utilisant son Index.
- Parcourir chaque forme de la première diapositive.
- Vérifier si la forme est du type [SmartArt] et convertir la forme sélectionnée en SmartArt si c’est le cas.
- Trouver la forme SmartArt avec un style de couleur particulier.
- Définir le nouveau style de couleur pour la forme SmartArt.
- Enregistrer 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"))) {
# Convertir la forme en SmartArtEx
$smart = $shape;
# Vérifier le type de couleur SmartArt
if ($smart->getColorStyle() == SmartArtColorType::ColoredFillAccent1) {
# Modifier le type de couleur SmartArt
$smart->setColorStyle(SmartArtColorType::ColorfulAccentColors);
}
}
}
# Enregistrer la présentation
$pres->save("ChangeSmartArtColorStyle.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
![]() |
|---|
| Figure : forme SmartArt avec style de couleur modifié |
FAQ
Puis-je animer le SmartArt comme un seul objet ?
Oui. Le SmartArt est une forme, vous pouvez donc appliquer les standard animations via l’API d’animations (entrée, sortie, mise en emphase, trajectoires de mouvement) comme pour les autres formes.
Comment puis-je trouver un SmartArt spécifique sur une diapositive si je ne connais pas son ID interne ?
Définissez et utilisez le texte alternatif (AltText) et recherchez la forme à l’aide de cette valeur - c’est une méthode recommandée pour localiser la forme cible.
Puis-je grouper le SmartArt avec d’autres formes ?
Oui. Vous pouvez grouper le SmartArt avec d’autres formes (images, tableaux, etc.) puis manipuler le groupe.
Comment obtenir une image d’un SmartArt spécifique (par ex., pour un aperçu ou un rapport) ?
Exportez une vignette/image de la forme; la bibliothèque peut render individual shapes en fichiers raster (PNG/JPG/TIFF).
L’apparence du SmartArt sera-t-elle conservée lors de la conversion de la présentation entière en PDF ?
Oui. Le moteur de rendu vise une haute fidélité pour l'PDF export, avec un éventail d’options de qualité et de compatibilité.

