Beheer SmartArt-grafieken in presentaties met Python
Overzicht
Aspose.Slides stelt u in staat om programmatically SmartArt‑grafieken te maken en te beheren in PowerPoint‑presentaties. Dit artikel legt uit hoe u een SmartArt‑vorm aan een dia toevoegt, bestaande SmartArt‑vormen benadert, SmartArt vindt op basis van een specifiek lay-outtype, en het uiterlijk bijwerkt door de SmartArt‑stijl of kleurstijl te wijzigen.
De voorbeelden laten zien hoe u met SmartArt‑vormen werkt via de vormcollectie van de presentatiedia, controleert of een vorm SmartArt is en daarna de eigenschappen wijzigt of inspecteert.
Een SmartArt‑vorm maken
Aspose.Slides voor Python via Java biedt een API om SmartArt‑vormen te maken. Om een SmartArt‑vorm in een dia te maken, volgt u de onderstaande stappen:
- Maak een instantie van de Presentation klasse.
- Haal een dia op op basis van zijn index.
- Voeg een SmartArt‑vorm toe door een SmartArtLayoutType op te geven.
- Sla de aangepaste presentatie op als een PPTX‑bestand.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, SmartArtLayoutType
presentation = Presentation()
try:
# Haal de eerste dia op.
slide = presentation.getSlides().get_Item(0)
# Voeg een SmartArt‑vorm toe.
smart_art = slide.getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.BasicBlockList)
# Sla de presentatie op.
presentation.save("SimpleSmartArt.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
![]() |
|---|
| Figuur: SmartArt‑vorm toegevoegd aan de dia |
Een SmartArt‑vorm op een dia benaderen
Het onderstaande voorbeeld benadert SmartArt‑vormen op een presentatiedia. Het doorloopt elke vorm op de dia en controleert of de vorm een SmartArt‑instantie is.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SmartArt
presentation = Presentation("AccessSmartArtShape.pptx")
try:
# Doorloop elke vorm op de eerste dia.
for shape in presentation.getSlides().get_Item(0).getShapes():
if isinstance(shape, SmartArt):
smart_art = shape
print("Shape Name: " + str(smart_art.getName()))
finally:
presentation.dispose()
Een SmartArt‑vorm met een specifiek lay-outtype benaderen
Het onderstaande voorbeeld benadert een SmartArt‑vorm met een specifiek lay-outtype, verkregen via SmartArt.getLayout.
- Maak een instantie van de Presentation klasse en laad de presentatie die een SmartArt‑vorm bevat.
- Haal de eerste dia op op basis van zijn index.
- Loop door elke vorm op de eerste dia.
- Controleer of de vorm een SmartArt‑instantie is.
- Controleer of de SmartArt‑vorm het opgegeven lay-outtype heeft en voer de vereiste bewerking uit.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SmartArt, SmartArtLayoutType
presentation = Presentation("AccessSmartArtShape.pptx")
try:
# Doorloop elke vorm op de eerste dia.
for shape in presentation.getSlides().get_Item(0).getShapes():
if isinstance(shape, SmartArt):
smart_art = shape
# Controleer de SmartArt-indeling.
if smart_art.getLayout() == SmartArtLayoutType.BasicBlockList:
print("Perform the required operation here.")
finally:
presentation.dispose()
De stijl van een SmartArt‑vorm wijzigen
Dit voorbeeld laat zien hoe u de snellestijl van een SmartArt‑vorm wijzigt.
- Maak een instantie van de Presentation klasse en laad de presentatie die een SmartArt‑vorm bevat.
- Haal de eerste dia op op basis van zijn index.
- Loop door elke vorm op de eerste dia.
- Controleer of de vorm een SmartArt‑instantie is.
- Zoek de SmartArt‑vorm met de opgegeven stijl.
- Stel de nieuwe stijl in voor de SmartArt‑vorm.
- Sla de presentatie op.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, SmartArt, SmartArtQuickStyleType
presentation = Presentation("SimpleSmartArt.pptx")
try:
slide = presentation.getSlides().get_Item(0)
# Doorloop elke vorm op de eerste dia.
for shape in slide.getShapes():
if isinstance(shape, SmartArt):
smart_art = shape
# Controleer en wijzig de SmartArt-stijl.
if smart_art.getQuickStyle() == SmartArtQuickStyleType.SimpleFill:
smart_art.setQuickStyle(SmartArtQuickStyleType.Cartoon)
presentation.save("ChangeSmartArtStyle.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
![]() |
|---|
| Figuur: SmartArt‑vorm met gewijzigde stijl |
De kleurstijl van een SmartArt‑vorm wijzigen
Dit voorbeeld benadert een SmartArt‑vorm met een specifieke kleurstijl en wijzigt die stijl.
- Maak een instantie van de Presentation klasse en laad de presentatie die een SmartArt‑vorm bevat.
- Haal de eerste dia op op basis van zijn index.
- Loop door elke vorm op de eerste dia.
- Controleer of de vorm een SmartArt‑instantie is.
- Zoek de SmartArt‑vorm met de opgegeven kleurstijl.
- Stel de nieuwe kleurstijl in voor de SmartArt‑vorm.
- Sla de presentatie op.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, SmartArt, SmartArtColorType
presentation = Presentation("SimpleSmartArt.pptx")
try:
slide = presentation.getSlides().get_Item(0)
# Doorloop elke vorm op de eerste dia.
for shape in slide.getShapes():
if isinstance(shape, SmartArt):
smart_art = shape
# Controleer en wijzig de SmartArt-stijl.
if smart_art.getColorStyle() == SmartArtColorType.ColoredFillAccent1:
smart_art.setColorStyle(SmartArtColorType.ColorfulAccentColors)
presentation.save("ChangeSmartArtColorStyle.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
![]() |
|---|
| Figuur: SmartArt‑vorm met gewijzigde kleurstijl |
FAQ
Kan ik SmartArt als één enkel object animeren?
Ja. SmartArt is een vorm, dus u kunt standaardanimaties toepassen via de animaties‑API (invoer, uitgang, nadruk, bewegingspaden), net als bij andere vormen.
Hoe kan ik een specifieke SmartArt op een dia vinden als ik de interne ID niet ken?
Stel de alternatieve tekst in en gebruik deze om te zoeken naar de vorm op basis van die waarde — dit is een aanbevolen methode om de doelvorm te vinden.
Kan ik SmartArt groeperen met andere vormen?
Ja. U kunt SmartArt groeperen met andere vormen (afbeeldingen, tabellen, enz.) en vervolgens de groep manipuleren.
Hoe krijg ik een afbeelding van een specifieke SmartArt (bijv. voor een voorbeeld of rapport)?
Exporteer een miniatuur/afbeelding van de vorm; de bibliotheek kan individuele vormen renderen naar rasterbestanden (PNG/JPG/TIFF).
Wordt het uiterlijk van SmartArt behouden bij het converteren van de volledige presentatie naar PDF?
Ja. De renderengine streeft naar hoge getrouwheid bij PDF‑export, met een reeks kwaliteits‑ en compatibiliteitsopties.

