Správa grafiky SmartArt v prezentacích pomocí PHP
Přehled
Aspose.Slides vám umožňuje programově vytvářet a spravovat grafiku SmartArt v prezentacích PowerPoint. Tento článek vysvětluje, jak přidat tvar SmartArt na snímek, přistupovat k existujícím tvarům SmartArt, najít SmartArt podle konkrétního typu rozvržení a aktualizovat jeho vzhled změnou stylu SmartArt nebo barevného stylu.
Příklady ukazují, jak pracovat s tvary SmartArt prostřednictvím kolekce tvarů snímku prezentace, zkontrolovat, zda je tvar SmartArt, a poté upravit nebo kontrolovat jeho vlastnosti.
Vytvoření tvaru SmartArt
Aspose.Slides for PHP via Java poskytuje API pro vytváření tvarů SmartArt. Pro vytvoření tvaru SmartArt na snímku postupujte podle následujících kroků:
- Vytvořte instanci třídy Presentation.
- Získejte referenci na snímek pomocí jeho indexu.
- Přidejte tvar SmartArt pomocí Add a SmartArt shape nastavením LayoutType.
- Uložte upravenou prezentaci jako soubor PPTX.
# Vytvořit instanci třídy Presentation
$pres = new Presentation();
try {
# Získat první snímek
$slide = $pres->getSlides()->get_Item(0);
# Přidat tvar SmartArt
$smart = $slide->getShapes()->addSmartArt(0, 0, 400, 400, SmartArtLayoutType::BasicBlockList);
# Uložit prezentaci
$pres->save("SimpleSmartArt.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
![]() |
|---|
| Obrázek: tvar SmartArt přidán na snímek |
Přístup k tvaru SmartArt na snímku
Následující kód bude použit k přístupu k tvarům SmartArt přidaným do snímku prezentace. Ve vzorovém kódu projdeme všechny tvary uvnitř snímku a zkontrolujeme, zda se jedná o tvar SmartArt. Pokud je tvar typu SmartArt, přetypujeme jej na instanci SmartArt.
# Načíst požadovanou prezentaci
$pres = new Presentation("AccessSmartArtShape.pptx");
try {
# Procházet všechny tvary v prvním snímku
foreach($pres->getSlides()->get_Item(0)->getShapes() as $shape) {
# Zkontrolovat, zda je tvar typu SmartArt
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Přetypovat tvar na SmartArtEx
$smart = $shape;
echo("Shape Name:" . $smart->getName());
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Přístup k tvaru SmartArt s konkrétním typem rozvržení
Následující ukázkový kód pomůže získat tvar SmartArt s konkrétním LayoutType. Všimněte si, že LayoutType SmartArt nelze změnit, protože je jen pro čtení a nastavuje se pouze při přidání tvaru SmartArt.
- Vytvořte instanci třídy Presentation a načtěte prezentaci s tvarem SmartArt.
- Získejte referenci na první snímek pomocí jeho indexu.
- Projděte všechny tvary uvnitř prvního snímku.
- Zkontrolujte, zda je tvar typu SmartArt, a pokud je, přetypujte vybraný tvar na SmartArt.
- Zkontrolujte tvar SmartArt s konkrétním LayoutType a proveďte požadované operace.
$pres = new Presentation("AccessSmartArtShape.pptx");
try {
# Procházet všechny tvary v prvním snímku
foreach($pres->getSlides()->get_Item(0)->getShapes() as $shape) {
# Zkontrolovat, zda je tvar typu SmartArt
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Přetypovat tvar na SmartArtEx
$smart = $shape;
# Kontrola rozvržení SmartArt
if ($smart->getLayout() == SmartArtLayoutType::BasicBlockList) {
echo("Do some thing here....");
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Změna stylu tvaru SmartArt
V tomto příkladu se naučíte změnit rychlý styl libovolného tvaru SmartArt.
- Vytvořte instanci třídy Presentation a načtěte prezentaci s tvarem SmartArt.
- Získejte referenci na první snímek pomocí jeho indexu.
- Projděte všechny tvary uvnitř prvního snímku.
- Zkontrolujte, zda je tvar typu SmartArt, a pokud je, přetypujte vybraný tvar na SmartArt.
- Najděte tvar SmartArt s konkrétním Style.
- Nastavte nový Style pro tvar SmartArt.
- Uložte prezentaci.
# Vytvořit instanci třídy Presentation
$pres = new Presentation("SimpleSmartArt.pptx");
try {
# Získat první snímek
$slide = $pres->getSlides()->get_Item(0);
# Procházet všechny tvary v prvním snímku
foreach($slide->getShapes() as $shape) {
# Zkontrolovat, zda je tvar typu SmartArt
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Přetypovat tvar na SmartArtEx
$smart = $shape;
# Kontrola stylu SmartArt
if ($smart->getQuickStyle() == SmartArtQuickStyleType::SimpleFill) {
# Změna stylu SmartArt
$smart->setQuickStyle(SmartArtQuickStyleType::Cartoon);
}
}
}
# Uložit prezentaci
$pres->save("ChangeSmartArtStyle.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
![]() |
|---|
| Obrázek: tvar SmartArt se změněným stylem |
Změna barevného stylu tvaru SmartArt
V tomto příkladu se naučíte změnit barevný styl libovolného tvaru SmartArt. V následujícím vzorovém kódu přistoupíme k tvaru SmartArt s konkrétním barevným stylem a změníme jej.
- Vytvořte instanci třídy Presentation a načtěte prezentaci s tvarem SmartArt.
- Získejte referenci na první snímek pomocí jeho indexu.
- Projděte všechny tvary uvnitř prvního snímku.
- Zkontrolujte, zda je tvar typu SmartArt, a pokud je, přetypujte vybraný tvar na SmartArt.
- Najděte tvar SmartArt s konkrétním Color Style.
- Nastavte nový Color Style pro tvar SmartArt.
- Uložte prezentaci.
# Vytvořit instanci třídy Presentation
$pres = new Presentation("SimpleSmartArt.pptx");
try {
# Získat první snímek
$slide = $pres->getSlides()->get_Item(0);
# Procházet všechny tvary v prvním snímku
foreach($slide->getShapes() as $shape) {
# Zkontrolovat, zda je tvar typu SmartArt
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Přetypovat tvar na SmartArtEx
$smart = $shape;
# Kontrola typu barvy SmartArt
if ($smart->getColorStyle() == SmartArtColorType::ColoredFillAccent1) {
# Změna typu barvy SmartArt
$smart->setColorStyle(SmartArtColorType::ColorfulAccentColors);
}
}
}
# Uložit prezentaci
$pres->save("ChangeSmartArtColorStyle.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
![]() |
|---|
| Obrázek: tvar SmartArt se změněným Color Style |
Často kladené otázky
Can I animate SmartArt as a single object?
Ano. SmartArt je tvar, takže můžete použít standard animations prostřednictvím animačního API (vstup, odchod, zdůraznění, trajektorie pohybu) stejně jako u ostatních tvarů.
How can I find a specific SmartArt on a slide if I don’t know its internal ID?
Nastavte a použijte alternativní text (AltText) a vyhledejte tvar podle této hodnoty – to je doporučený způsob, jak najít cílový tvar.
Can I group SmartArt with other shapes?
Ano. Můžete seskupit SmartArt s ostatními tvary (obrázky, tabulky atd.) a následně manipulate the group.
How do I get an image of a specific SmartArt (e.g., for a preview or report)?
Exportujte miniaturu/obrázek tvaru; knihovna může render individual shapes do rastrových souborů (PNG/JPG/TIFF).
Will the SmartArt appearance be preserved when converting the whole presentation to PDF?
Ano. Vykreslovací engine usiluje o vysokou věrnost při PDF export, s řadou možností kvality a kompatibility.

