Zarządzanie grafikami SmartArt w prezentacjach przy użyciu PHP
Przegląd
Aspose.Slides umożliwia programowe tworzenie i zarządzanie grafikami SmartArt w prezentacjach PowerPoint. Ten artykuł wyjaśnia, jak dodać kształt SmartArt do slajdu, uzyskać dostęp do istniejących kształtów SmartArt, znaleźć SmartArt o określonym typie układu oraz zaktualizować jego wygląd, zmieniając styl SmartArt lub styl kolorów.
Przykłady pokazują, jak pracować z kształtami SmartArt poprzez kolekcję kształtów slajdu prezentacji, sprawdzić, czy kształt jest SmartArt, a następnie modyfikować lub przeglądać jego właściwości.
Utworzenie kształtu SmartArt
Aspose.Slides for PHP via Java udostępnia API do tworzenia kształtów SmartArt. Aby utworzyć kształt SmartArt na slajdzie, wykonaj poniższe kroki:
- Utwórz instancję klasy Presentation.
- Uzyskaj odniesienie do slajdu, używając jego indeksu.
- Dodaj kształt SmartArt ustawiając jego LayoutType.
- Zapisz zmodyfikowaną prezentację jako plik PPTX.
# Utwórz instancję klasy Presentation
$pres = new Presentation();
try {
# Pobierz pierwszy slajd
$slide = $pres->getSlides()->get_Item(0);
# Dodaj kształt Smart Art
$smart = $slide->getShapes()->addSmartArt(0, 0, 400, 400, SmartArtLayoutType::BasicBlockList);
# Zapisz prezentację
$pres->save("SimpleSmartArt.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
![]() |
|---|
| Rysunek: Kształt SmartArt dodany do slajdu |
Dostęp do kształtu SmartArt na slajdzie
Poniższy kod będzie używany do uzyskania dostępu do kształtów SmartArt dodanych w slajdzie prezentacji. W przykładzie kodu przejdziemy przez każdy kształt wewnątrz slajdu i sprawdzimy, czy jest to kształt SmartArt. Jeśli kształt jest typu SmartArt, zostanie rzutowany na instancję SmartArt.
# Załaduj żądaną prezentację
$pres = new Presentation("AccessSmartArtShape.pptx");
try {
# Przejdź przez każdy kształt na pierwszym slajdzie
foreach($pres->getSlides()->get_Item(0)->getShapes() as $shape) {
# Sprawdź, czy kształt jest typu SmartArt
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Rzutuj kształt na SmartArtEx
$smart = $shape;
echo("Shape Name:" . $smart->getName());
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Dostęp do kształtu SmartArt o określonym typie układu
Poniższy przykładowy kod pomoże uzyskać dostęp do kształtu SmartArt o konkretnym LayoutType. Należy pamiętać, że nie można zmienić LayoutType SmartArt, ponieważ jest on tylko do odczytu i ustawia się go wyłącznie podczas dodawania kształtu SmartArt.
- Utwórz instancję klasy Presentation i wczytaj prezentację zawierającą kształt SmartArt.
- Uzyskaj odniesienie do pierwszego slajdu, używając jego indeksu.
- Przejdź przez każdy kształt wewnątrz pierwszego slajdu.
- Sprawdź, czy kształt jest typu SmartArt, i rzutuj wybrany kształt na SmartArt, jeśli tak jest.
- Sprawdź kształt SmartArt o określonym LayoutType i wykonaj wymagane działania.
$pres = new Presentation("AccessSmartArtShape.pptx");
try {
# Przejdź przez każdy kształt na pierwszym slajdzie
foreach($pres->getSlides()->get_Item(0)->getShapes() as $shape) {
# Sprawdź, czy kształt jest typu SmartArt
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Rzutuj kształt na SmartArtEx
$smart = $shape;
# Sprawdzanie układu SmartArt
if ($smart->getLayout() == SmartArtLayoutType::BasicBlockList) {
echo("Do some thing here....");
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Zmienianie stylu kształtu SmartArt
W tym przykładzie nauczymy się zmieniać szybki styl dowolnego kształtu SmartArt.
- Utwórz instancję klasy Presentation i wczytaj prezentację zawierającą kształt SmartArt.
- Uzyskaj odniesienie do pierwszego slajdu, używając jego indeksu.
- Przejdź przez każdy kształt wewnątrz pierwszego slajdu.
- Sprawdź, czy kształt jest typu SmartArt, i rzutuj wybrany kształt na SmartArt, jeśli tak jest.
- Znajdź kształt SmartArt o określonym stylu.
- Ustaw nowy styl dla kształtu SmartArt.
- Zapisz prezentację.
# Utwórz instancję klasy Presentation
$pres = new Presentation("SimpleSmartArt.pptx");
try {
# Pobierz pierwszy slajd
$slide = $pres->getSlides()->get_Item(0);
# Przejdź przez każdy kształt na pierwszym slajdzie
foreach($slide->getShapes() as $shape) {
# Sprawdź, czy kształt jest typu SmartArt
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Rzutuj kształt na SmartArtEx
$smart = $shape;
# Sprawdzanie stylu SmartArt
if ($smart->getQuickStyle() == SmartArtQuickStyleType::SimpleFill) {
# Zmienianie stylu SmartArt
$smart->setQuickStyle(SmartArtQuickStyleType::Cartoon);
}
}
}
# Zapisz prezentację
$pres->save("ChangeSmartArtStyle.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
![]() |
|---|
| Rysunek: Kształt SmartArt ze zmienionym stylem |
Zmienianie stylu kolorów kształtu SmartArt
W tym przykładzie nauczymy się zmieniać styl kolorów dowolnego kształtu SmartArt. W poniższym przykładowym kodzie uzyskamy dostęp do kształtu SmartArt o określonym stylu kolorów i zmienimy jego styl.
- Utwórz instancję klasy Presentation i wczytaj prezentację zawierającą kształt SmartArt.
- Uzyskaj odniesienie do pierwszego slajdu, używając jego indeksu.
- Przejdź przez każdy kształt wewnątrz pierwszego slajdu.
- Sprawdź, czy kształt jest typu SmartArt, i rzutuj wybrany kształt na SmartArt, jeśli tak jest.
- Znajdź kształt SmartArt o określonym stylu kolorów.
- Ustaw nowy styl kolorów dla kształtu SmartArt.
- Zapisz prezentację.
# Utwórz instancję klasy Presentation
$pres = new Presentation("SimpleSmartArt.pptx");
try {
# Pobierz pierwszy slajd
$slide = $pres->getSlides()->get_Item(0);
# Przejdź przez każdy kształt na pierwszym slajdzie
foreach($slide->getShapes() as $shape) {
# Sprawdź, czy kształt jest typu SmartArt
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Rzutuj kształt na SmartArtEx
$smart = $shape;
# Sprawdzanie typu koloru SmartArt
if ($smart->getColorStyle() == SmartArtColorType::ColoredFillAccent1) {
# Zmienianie typu koloru SmartArt
$smart->setColorStyle(SmartArtColorType::ColorfulAccentColors);
}
}
}
# Zapisz prezentację
$pres->save("ChangeSmartArtColorStyle.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
![]() |
|---|
| Rysunek: Kształt SmartArt ze zmienionym stylem kolorów |
FAQ
Czy mogę animować SmartArt jako pojedynczy obiekt?
Tak. SmartArt jest kształtem, więc możesz zastosować standardowe animacje za pomocą API animacji (wejście, wyjście, podkreślenie, ścieżki ruchu) tak jak w przypadku innych kształtów.
Jak mogę znaleźć konkretny SmartArt na slajdzie, jeśli nie znam jego wewnętrznego identyfikatora?
Ustaw i użyj tekstu alternatywnego (AltText) oraz wyszukaj kształt po tej wartości — jest to zalecany sposób lokalizowania docelowego kształtu.
Czy mogę grupować SmartArt z innymi kształtami?
Tak. Możesz grupować SmartArt z innymi kształtami (obrazami, tabelami itp.), a następnie manipulować grupą.
Jak uzyskać obraz konkretnego SmartArt (np. do podglądu lub raportu)?
Wyeksportuj miniaturę/obraz kształtu; biblioteka może renderować pojedyncze kształty do plików rastrowych (PNG/JPG/TIFF).
Czy wygląd SmartArt zostanie zachowany przy konwersji całej prezentacji do PDF?
Tak. Silnik renderujący dąży do wysokiej wierności przy eksportowaniu do PDF, oferując szereg opcji jakości i zgodności.

