SmartArt-Grafiken in Präsentationen mit PHP verwalten
SmartArt-Form erstellen
Aspose.Slides für PHP via Java hat eine API bereitgestellt, um SmartArt‑Formen zu erstellen. Um eine SmartArt‑Form in einer Folie zu erstellen, folgen Sie bitte den untenstehenden Schritten:
- Erstellen Sie eine Instanz der Klasse Presentation.
- Holen Sie die Referenz einer Folie, indem Sie ihren Index verwenden.
- SmartArt‑Form hinzufügen durch Festlegen des LayoutType.
- Speichern Sie die geänderte Präsentation als PPTX‑Datei.
# Instanziieren der Presentation-Klasse
$pres = new Presentation();
try {
# Erste Folie abrufen
$slide = $pres->getSlides()->get_Item(0);
# SmartArt-Form hinzufügen
$smart = $slide->getShapes()->addSmartArt(0, 0, 400, 400, SmartArtLayoutType::BasicBlockList);
# Präsentation speichern
$pres->save("SimpleSmartArt.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
![]() |
|---|
| Abbildung: SmartArt-Form, die der Folie hinzugefügt wurde |
Zugriff auf eine SmartArt-Form auf einer Folie
Der folgende Code wird verwendet, um auf die in der Präsentationsfolie hinzugefügten SmartArt‑Formen zuzugreifen. Im Beispielcode durchlaufen wir jede Form in der Folie und prüfen, ob es sich um eine SmartArt-Form handelt. Wenn die Form vom Typ SmartArt ist, casten wir sie zu einer SmartArt-Instanz.
# Lade die gewünschte Präsentation
$pres = new Presentation("AccessSmartArtShape.pptx");
try {
# Durchlaufe jede Form in der ersten Folie
foreach($pres->getSlides()->get_Item(0)->getShapes() as $shape) {
# Überprüfe, ob die Form vom Typ SmartArt ist
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Typumwandlung von shape zu SmartArtEx
$smart = $shape;
echo("Shape Name:" . $smart->getName());
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Zugriff auf eine SmartArt-Form mit einem bestimmten Layouttyp
Der folgende Beispielcode hilft dabei, die SmartArt-Form mit einem bestimmten LayoutType zu erreichen. Bitte beachten Sie, dass Sie den LayoutType von SmartArt nicht ändern können, da er schreibgeschützt ist und nur festgelegt wird, wenn die SmartArt-Form hinzugefügt wird.
- Erstellen Sie eine Instanz der Klasse Presentation und laden Sie die Präsentation mit einer SmartArt‑Form.
- Holen Sie die Referenz der ersten Folie, indem Sie ihren Index verwenden.
- Durchlaufen Sie jede Form in der ersten Folie.
- Prüfen Sie, ob die Form vom Typ SmartArt ist, und casten Sie die ausgewählte Form zu SmartArt, falls sie SmartArt ist.
- Überprüfen Sie die SmartArt‑Form mit dem bestimmten LayoutType und führen Sie danach die erforderlichen Aktionen aus.
$pres = new Presentation("AccessSmartArtShape.pptx");
try {
# Durchlaufe jede Form in der ersten Folie
foreach($pres->getSlides()->get_Item(0)->getShapes() as $shape) {
# Überprüfe, ob die Form vom Typ SmartArt ist
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Typumwandlung von shape zu SmartArtEx
$smart = $shape;
# Überprüfe das SmartArt-Layout
if ($smart->getLayout() == SmartArtLayoutType::BasicBlockList) {
echo("Do some thing here....");
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Stil einer SmartArt-Form ändern
In diesem Beispiel lernen wir, den Schnellstil für eine beliebige SmartArt‑Form zu ändern.
- Erstellen Sie eine Instanz der Klasse Presentation und laden Sie die Präsentation mit einer SmartArt‑Form.
- Holen Sie die Referenz der ersten Folie, indem Sie ihren Index verwenden.
- Durchlaufen Sie jede Form in der ersten Folie.
- Prüfen Sie, ob die Form vom Typ SmartArt ist, und casten Sie die ausgewählte Form zu SmartArt, falls sie SmartArt ist.
- Suchen Sie die SmartArt‑Form mit einem bestimmten Stil.
- Legen Sie den neuen Stil für die SmartArt‑Form fest.
- Speichern Sie die Präsentation.
# Instanziieren der Presentation-Klasse
$pres = new Presentation("SimpleSmartArt.pptx");
try {
# Erste Folie abrufen
$slide = $pres->getSlides()->get_Item(0);
# Durchlaufe jede Form in der ersten Folie
foreach($slide->getShapes() as $shape) {
# Überprüfe, ob die Form vom Typ SmartArt ist
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Typumwandlung von shape zu SmartArtEx
$smart = $shape;
# Überprüfe den SmartArt-Stil
if ($smart->getQuickStyle() == SmartArtQuickStyleType::SimpleFill) {
# SmartArt-Stil ändern
$smart->setQuickStyle(SmartArtQuickStyleType::Cartoon);
}
}
}
# Präsentation speichern
$pres->save("ChangeSmartArtStyle.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
![]() |
|---|
| Abbildung: SmartArt-Form mit geändertem Stil |
Farbstil einer SmartArt-Form ändern
In diesem Beispiel lernen wir, den Farbstil für eine beliebige SmartArt‑Form zu ändern. Der folgende Beispielcode greift auf die SmartArt‑Form mit einem bestimmten Farbstil zu und ändert deren Stil.
- Erstellen Sie eine Instanz der Klasse Presentation und laden Sie die Präsentation mit einer SmartArt‑Form.
- Holen Sie die Referenz der ersten Folie, indem Sie ihren Index verwenden.
- Durchlaufen Sie jede Form in der ersten Folie.
- Prüfen Sie, ob die Form vom Typ SmartArt ist, und casten Sie die ausgewählte Form zu SmartArt, falls sie SmartArt ist.
- Suchen Sie die SmartArt‑Form mit einem bestimmten Farbstil.
- Legen Sie den neuen Farbstil für die SmartArt‑Form fest.
- Speichern Sie die Präsentation.
# Instanziieren der Presentation-Klasse
$pres = new Presentation("SimpleSmartArt.pptx");
try {
# Erste Folie abrufen
$slide = $pres->getSlides()->get_Item(0);
# Durchlaufe jede Form in der ersten Folie
foreach($slide->getShapes() as $shape) {
# Überprüfe, ob die Form vom Typ SmartArt ist
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Typumwandlung von shape zu SmartArtEx
$smart = $shape;
# Überprüfe den SmartArt-Farbtyp
if ($smart->getColorStyle() == SmartArtColorType::ColoredFillAccent1) {
# SmartArt-Farbtyp ändern
$smart->setColorStyle(SmartArtColorType::ColorfulAccentColors);
}
}
}
# Präsentation speichern
$pres->save("ChangeSmartArtColorStyle.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
![]() |
|---|
| Abbildung: SmartArt-Form mit geändertem Farbstil |
FAQ
Kann ich SmartArt als einzelnes Objekt animieren?
Ja. SmartArt ist eine Form, sodass Sie über die Animations‑API Standardanimationen (Eingang, Ausgang, Betonung, Bewegungsbahnen) wie bei anderen Formen anwenden können.
Wie kann ich ein bestimmtes SmartArt auf einer Folie finden, wenn ich seine interne ID nicht kenne?
Legen Sie den Alternativtext (AltText) fest und verwenden Sie ihn zur Suche nach der Form – dies ist ein empfohlener Weg, die Ziel‑Form zu finden.
Kann ich SmartArt mit anderen Formen gruppieren?
Ja. Sie können SmartArt mit anderen Formen (Bildern, Tabellen usw.) gruppieren und anschließend die Gruppe manipulieren.
Wie erhalte ich ein Bild eines bestimmten SmartArt (z. B. für eine Vorschau oder einen Bericht)?
Exportieren Sie ein Miniaturbild/Bild der Form; die Bibliothek kann einzelne Formen rendern in Rasterdateien (PNG/JPG/TIFF).
Wird das Aussehen von SmartArt beim Konvertieren der gesamten Präsentation in PDF beibehalten?
Ja. Die Rendering‑Engine zielt bei der PDF‑Export auf hohe Treue ab und bietet verschiedene Qualitäts‑ und Kompatibilitätsoptionen.

