SmartArt‑vormknooppunten beheren in presentaties met Python
Overzicht
SmartArt-afbeeldingen in PowerPoint‑presentaties worden georganiseerd via knooppunten die tekst bevatten en de structuur van het diagram bepalen. Aspose.Slides stelt u in staat om programmatic met deze SmartArt‑knooppunten te werken: nieuwe knooppunten en onderliggende knooppunten toe te voegen, onderliggende knooppunten op een specifieke positie in te voegen, bestaande knooppunten te benaderen en hun tekst, niveau en positie uit te lezen.
Dit artikel legt uit hoe u SmartArt‑vormknooppunten beheert. Het toont hoe u knooppunten verwijdert, werkt met onderliggende knooppunten op index of positie, een assistent‑knooppunt verandert in een normaal knooppunt, de positie, grootte en rotatie van SmartArt‑knooppuntvormen aanpast, vulopmaak voor knooppunten instelt en een miniatuurafbeelding genereert voor een SmartArt‑onderliggend knooppunt.
SmartArt‑knooppunt toevoegen
Aspose.Slides for Python via .NET biedt de eenvoudigste API om SmartArt‑vormen op de gemakkelijkste manier te beheren. De onderstaande voorbeeldcode helpt bij het toevoegen van een knooppunt en een onderliggend knooppunt binnen een SmartArt‑vorm.
- Maak een instantie van de class Presentation en laad de presentatie met een SmartArt‑vorm.
- Haal de referentie van de eerste dia op met behulp van de Index.
- Doorloop elke vorm op de eerste dia.
- Controleer of de vorm van het type SmartArt is en cast de geselecteerde vorm naar SmartArt indien dit het geval is.
- Voeg een nieuw knooppunt toe aan de NodeCollection van de SmartArt‑vorm en stel de tekst in het TextFrame in.
- Voeg nu een onderliggend knooppunt toe aan het zojuist toegevoegde SmartArt‑knooppunt en stel de tekst in het TextFrame in.
- Sla de presentatie op.
import aspose.pydrawing as draw
import aspose.slides as slides
import aspose.slides.smartart as art
# Laad de gewenste presentatie
with slides.Presentation(path + "AddNodes.pptx") as pres:
# Doorloop elke vorm op de eerste dia
for shape in pres.slides[0].shapes:
# Controleer of de vorm van het type SmartArt is
if type(shape) is art.SmartArt:
# Een nieuw SmartArt‑knooppunt toevoegen
node1 = shape.all_nodes.add_node()
# Tekst toevoegen
node1.text_frame.text = "Test"
# Een nieuw onderliggend knooppunt toevoegen in het bovenliggende knooppunt. Het wordt aan het einde van de collectie toegevoegd
new_node = node1.child_nodes.add_node()
# Tekst toevoegen
new_node.text_frame.text = "New Node Added"
# Presentatie opslaan
pres.save("AddSmartArtNode_out.pptx", slides.export.SaveFormat.PPTX)
SmartArt‑knooppunt toevoegen op specifieke positie
In de onderstaande voorbeeldcode leggen we uit hoe u onderliggende knooppunten die bij respectieve knooppunten van een SmartArt‑vorm horen, op een bepaalde positie toevoegt.
- Maak een instantie van de class
Presentation. - Haal de referentie van de eerste dia op met behulp van de Index.
- Voeg een SmartArt‑vorm van het type StackedList toe aan de benaderde dia.
- Benader het eerste knooppunt in de toegevoegde SmartArt‑vorm.
- Voeg nu een onderliggend knooppunt toe voor het geselecteerde knooppunt op positie 2 en stel de tekst in.
- Sla de presentatie op.
import aspose.pydrawing as draw
import aspose.slides as slides
import aspose.slides.smartart as art
# Een presentatie‑instantie maken
with slides.Presentation() as pres:
# De presentatiedia benaderen
slide = pres.slides[0]
# SmartArt‑IShape toevoegen
smart = slide.shapes.add_smart_art(0, 0, 400, 400, art.SmartArtLayoutType.STACKED_LIST)
# Het SmartArt‑knooppunt op index 0 benaderen
node = smart.all_nodes[0]
# Een nieuw onderliggend knooppunt toevoegen op positie 2 in het bovenliggende knooppunt
chNode = node.child_nodes.add_node_by_position(2)
# Tekst toevoegen
chNode.text_frame.text = "Sample text Added"
# Presentatie opslaan
pres.save("AddSmartArtNodeByPosition_out.pptx", slides.export.SaveFormat.PPTX)
SmartArt‑knooppunt benaderen
De onderstaande voorbeeldcode helpt bij het benaderen van knooppunten binnen een SmartArt‑vorm. Let op: u kunt het LayoutType van de SmartArt niet wijzigen, omdat dit alleen‑lezen is en alleen wordt ingesteld wanneer de SmartArt‑vorm wordt toegevoegd.
- Maak een instantie van de class
Presentationen laad de presentatie met een SmartArt‑vorm. - Haal de referentie van de eerste dia op met behulp van de Index.
- Doorloop elke vorm op de eerste dia.
- Controleer of de vorm van het type SmartArt is en cast de geselecteerde vorm naar SmartArt indien dit het geval is.
- Doorloop alle knooppunten binnen de SmartArt‑vorm.
- Benader en toon informatie zoals de positie, het niveau en de tekst van het SmartArt‑knooppunt.
import aspose.pydrawing as draw
import aspose.slides as slides
import aspose.slides.smartart as art
# Laad de gewenste presentatie
with slides.Presentation(path + "AccessSmartArt.pptx") as pres:
# Doorloop elke vorm op de eerste dia
for shape in pres.slides[0].shapes:
# Controleer of de vorm van het type SmartArt is
if type(shape) is art.SmartArt:
# Doorloop alle knooppunten binnen SmartArt
for i in range(len(shape.all_nodes)):
# SmartArt‑knooppunt op index i benaderen
node = shape.all_nodes[i]
# De parameters van het SmartArt‑knooppunt afdrukken
print("i = {0}, text = {1}, level = {2}, position = {3}".format(i, node.text_frame.text, node.level, node.position))
SmartArt‑onderliggend knooppunt benaderen
De onderstaande voorbeeldcode helpt bij het benaderen van onderliggende knooppunten die bij respectieve knooppunten van een SmartArt‑vorm horen.
- Maak een instantie van de class PresentationEx en laad de presentatie met een SmartArt‑vorm.
- Haal de referentie van de eerste dia op met behulp van de Index.
- Doorloop elke vorm op de eerste dia.
- Controleer of de vorm van het type SmartArt is en cast de geselecteerde vorm naar SmartArtEx indien dit het geval is.
- Doorloop alle knooppunten binnen de SmartArt‑vorm.
- Voor elk geselecteerd SmartArt‑vormknooppunt, doorloop alle onderliggende knooppunten binnen dat specifieke knooppunt.
- Benader en toon informatie zoals de positie, het niveau en de tekst van het onderliggende knooppunt.
import aspose.pydrawing as draw
import aspose.slides as slides
import aspose.slides.smartart as art
# Laad de gewenste presentatie
with slides.Presentation(path + "AccessChildNodes.pptx") as pres:
# Doorloop elke vorm op de eerste dia
for shape in pres.slides[0].shapes:
# Controleer of de vorm van het type SmartArt is
if type(shape) is art.SmartArt:
# Doorloop alle knooppunten binnen SmartArt
for node0 in shape.all_nodes:
# Doorloop de onderliggende knooppunten
for j in range(len(node0.child_nodes)):
# Het onderliggende knooppunt in het SmartArt‑knooppunt benaderen
node = node0.child_nodes[j]
# De parameters van het SmartArt‑onderliggende knooppunt afdrukken
print("j = {0}, text = {1}, level = {2}, position = {3}".format(j, node.text_frame.text, node.level, node.position))
SmartArt‑onderliggend knooppunt benaderen op specifieke positie
In dit voorbeeld leren we hoe we onderliggende knooppunten op een bepaalde positie kunnen benaderen die bij respectieve knooppunten van een SmartArt‑vorm horen.
- Maak een instantie van de class
Presentation. - Haal de referentie van de eerste dia op met behulp van de Index.
- Voeg een SmartArt‑vorm van het type StackedList toe.
- Benader de toegevoegde SmartArt‑vorm.
- Benader het knooppunt op index 0 van de benaderde SmartArt‑vorm.
- Benader nu het onderliggende knooppunt op positie 1 van het benaderde SmartArt‑knooppunt met behulp van de methode GetNodeByPosition().
- Benader en toon informatie zoals de positie, het niveau en de tekst van het onderliggende knooppunt.
import aspose.pydrawing as draw
import aspose.slides as slides
import aspose.slides.smartart as art
# Een presentatie‑instantie maken
with slides.Presentation() as pres:
# De eerste dia benaderen
slide = pres.slides[0]
# De SmartArt‑vorm toevoegen op de eerste dia
smart = slide.shapes.add_smart_art(0, 0, 400, 400, art.SmartArtLayoutType.STACKED_LIST)
# Het SmartArt‑knooppunt op index 0 benaderen
node = smart.all_nodes[0]
# Het onderliggende knooppunt op positie 1 in het bovenliggende knooppunt benaderen
position = 1
chNode = node.child_nodes[position]
# De parameters van het SmartArt‑onderliggende knooppunt afdrukken
print("j = {0}, text = {1}, level = {2}, position = {3}".format(position, chNode.text_frame.text, chNode.level, chNode.position))
SmartArt‑knooppunt verwijderen
In dit voorbeeld leren we hoe we knooppunten binnen een SmartArt‑vorm kunnen verwijderen.
- Maak een instantie van de class
Presentationen laad de presentatie met een SmartArt‑vorm. - Haal de referentie van de eerste dia op met behulp van de Index.
- Doorloop elke vorm op de eerste dia.
- Controleer of de vorm van het type SmartArt is en cast de geselecteerde vorm naar SmartArt indien dit het geval is.
- Controleer of de SmartArt meer dan 0 knooppunten heeft.
- Selecteer het SmartArt‑knooppunt dat verwijderd moet worden.
- Verwijder nu het geselecteerde knooppunt met de methode RemoveNode()* Sla de presentatie op.
import aspose.pydrawing as draw
import aspose.slides as slides
import aspose.slides.smartart as art
# Laad de gewenste presentatie
with slides.Presentation(path + "RemoveNode.pptx") as pres:
# Doorloop elke vorm op de eerste dia
for shape in pres.slides[0].shapes:
# Controleer of de vorm van het type SmartArt is
if type(shape) is art.SmartArt:
# Cast de vorm naar SmartArtEx
if len(shape.all_nodes) > 0:
# SmartArt‑knooppunt op index 0 benaderen
node = shape.all_nodes[0]
# Het geselecteerde knooppunt verwijderen
shape.all_nodes.remove_node(node)
# Presentatie opslaan
pres.save("RemoveSmartArtNode_out.pptx", slides.export.SaveFormat.PPTX)
SmartArt‑knooppunt verwijderen op specifieke positie
In dit voorbeeld leren we hoe we knooppunten binnen een SmartArt‑vorm op een specifieke positie kunnen verwijderen.
- Maak een instantie van de class
Presentationen laad de presentatie met een SmartArt‑vorm. - Haal de referentie van de eerste dia op met behulp van de Index.
- Doorloop elke vorm op de eerste dia.
- Controleer of de vorm van het type SmartArt is en cast de geselecteerde vorm naar SmartArt indien dit het geval is.
- Selecteer het SmartArt‑vormknooppunt op index 0.
- Controleer nu of het geselecteerde SmartArt‑knooppunt meer dan 2 onderliggende knooppunten heeft.
- Verwijder nu het knooppunt op positie 1 met de methode RemoveNodeByPosition().
- Sla de presentatie op.
import aspose.pydrawing as draw
import aspose.slides as slides
import aspose.slides.smartart as art
# Laad de gewenste presentatie
with slides.Presentation(path + "RemoveNodeSpecificPosition.pptx") as pres:
# Doorloop elke vorm op de eerste dia
for shape in pres.slides[0].shapes:
# Controleer of de vorm van het type SmartArt is
if type(shape) is art.SmartArt:
# Cast de vorm naar SmartArt
if len(shape.all_nodes) > 0:
# SmartArt‑knooppunt op index 0 benaderen
node = shape.all_nodes[0]
if len(node.child_nodes) >= 2:
# Het onderliggende knooppunt op positie 1 verwijderen
node.child_nodes.remove_node(1)
# Presentatie opslaan
pres.save("RemoveSmartArtNodeByPosition_out.pptx", slides.export.SaveFormat.PPTX)
Aangepaste positie instellen voor onderliggend knooppunt in SmartArt
Nu ondersteunt Aspose.Slides for Python via .NET het instellen van de X‑ en Y‑eigenschappen van SmartArtShape. Het onderstaande code‑fragment toont hoe u een aangepaste positie, grootte en rotatie van SmartArtShape instelt; let ook op dat het toevoegen van nieuwe knooppunten een herberekening van de posities en afmetingen van alle knooppunten veroorzaakt.
import aspose.pydrawing as draw
import aspose.slides as slides
import aspose.slides.smartart as art
# Laad de gewenste presentatie
with slides.Presentation(path + "AccessChildNodes.pptx") as pres:
smart = pres.slides[0].shapes.add_smart_art(20, 20, 600, 500, art.SmartArtLayoutType.ORGANIZATION_CHART)
# SmartArt‑vorm naar een nieuwe positie verplaatsen
node = smart.all_nodes[1]
shape = node.shapes[1]
shape.x += (shape.width * 2)
shape.y -= (shape.height / 2)
# De breedtes van de SmartArt‑vorm wijzigen
node = smart.all_nodes[2]
shape = node.shapes[1]
shape.width += (shape.width / 2)
# De hoogte van de SmartArt‑vorm wijzigen
node = smart.all_nodes[3]
shape = node.shapes[1]
shape.height += (shape.height / 2)
# De rotatie van de SmartArt‑vorm wijzigen
node = smart.all_nodes[4]
shape = node.shapes[1]
shape.rotation = 90
pres.save("SmartArt.pptx", slides.export.SaveFormat.PPTX)
Assistentknooppunt controleren
In de onderstaande voorbeeldcode onderzoeken we hoe we Assistant‑knooppunten in de SmartArt‑knooppuntenverzameling kunnen identificeren en aanpassen.
- Maak een instantie van de class PresentationEx en laad de presentatie met een SmartArt‑vorm.
- Haal de referentie van de tweede dia op met behulp van de Index.
- Doorloop elke vorm op de eerste dia.
- Controleer of de vorm van het type SmartArt is en cast de geselecteerde vorm naar SmartArtEx indien dit het geval is.
- Doorloop alle knooppunten binnen de SmartArt‑vorm en controleer of ze Assistant‑knooppunten zijn.
- Verander de status van het Assistant‑knooppunt naar een normaal knooppunt.
- Sla de presentatie op.
import aspose.pydrawing as draw
import aspose.slides as slides
import aspose.slides.smartart as art
# Een presentatie‑instantie maken
with slides.Presentation(path + "AssistantNode.pptx") as pres:
# Doorloop elke vorm op de eerste dia
for shape in pres.slides[0].shapes:
# Controleer of de vorm van het type SmartArt is
if type(shape) is art.SmartArt:
# Doorloop alle knooppunten van de SmartArt‑vorm
for node in shape.all_nodes:
tc = node.text_frame.text
# Controleer of het knooppunt een assistentknooppunt is
if node.is_assistant:
# Stel het assistentknooppunt in op false en maak er een normaal knooppunt van
node.is_assistant = False
# Presentatie opslaan
pres.save("ChangeAssitantNode_out.pptx", slides.export.SaveFormat.PPTX)
Vulopmaak van knooppunt instellen
Aspose.Slides for Python via .NET maakt het mogelijk om aangepaste SmartArt‑vormen toe te voegen en hun vulopmaak in te stellen. Dit artikel legt uit hoe u SmartArt‑vormen maakt en benadert en hun vulopmaak instelt met behulp van Aspose.Slides for Python via .NET.
Volg de onderstaande stappen:
- Maak een instantie van de class
Presentation. - Haal de referentie van een dia op met behulp van de index.
- Voeg een SmartArt‑vorm toe door het LayoutType in te stellen.
- Stel de FillFormat in voor de knooppunten van de SmartArt‑vorm.
- Schrijf de aangepaste presentatie weg als een PPTX‑bestand.
import aspose.pydrawing as draw
import aspose.slides as slides
import aspose.slides.smartart as art
with slides.Presentation() as presentation:
# De dia benaderen
slide = presentation.slides[0]
# SmartArt‑vorm en knooppunten toevoegen
chevron = slide.shapes.add_smart_art(10, 10, 800, 60, art.SmartArtLayoutType.CLOSED_CHEVRON_PROCESS)
node = chevron.all_nodes.add_node()
node.text_frame.text = "Some text"
# Vulkleur van knooppunt instellen
for item in node.shapes:
item.fill_format.fill_type = slides.FillType.SOLID
item.fill_format.solid_fill_color.color = draw.Color.red
# Presentatie opslaan
presentation.save("FillFormat_SmartArt_ShapeNode_out.pptx", slides.export.SaveFormat.PPTX)
Miniatuur genereren van SmartArt‑onderliggend knooppunt
Ontwikkelaars kunnen een miniatuur van een onderliggend knooppunt van een SmartArt genereren door de onderstaande stappen te volgen:
- Instantieer de class
Presentationdie het PPTX‑bestand vertegenwoordigt. - Voeg SmartArt toe.
- Haal de referentie van een knooppunt op met behulp van de Index.
- Haal de miniatuurafbeelding op.
- Sla de miniatuurafbeelding op in elk gewenst afbeelding‑formaat.
Het voorbeeld hieronder genereert een miniatuur van een SmartArt‑onderliggend knooppunt
import aspose.slides as slides
import aspose.slides.smartart as art
# Een instantie van de Presentation‑klasse maken die het PPTX‑bestand vertegenwoordigt
with slides.Presentation() as presentation:
# SmartArt toevoegen
smart = pres.slides[0].shapes.add_smart_art(10, 10, 400, 300, art.SmartArtLayoutType.BASIC_CYCLE)
# De referentie van een knooppunt verkrijgen met behulp van de index
node = smart.nodes[1]
# Miniatuur ophalen
with node.shapes[0].get_image() as bmp:
# miniatuur opslaan
bmp.save("SmartArt_ChildNote_Thumbnail_out.jpeg", slides.ImageFormat.JPEG)
Veelgestelde vragen
Wordt SmartArt‑animatie ondersteund?
Ja. SmartArt wordt behandeld als een gewone vorm, zodat u standaardanimaties (invoeren, verlaten, nadruk, bewegingspaden) kunt toepassen en de timing kunt aanpassen. U kunt ook vormen binnen SmartArt‑knooppunten animeren wanneer nodig.
Hoe kan ik een specifiek SmartArt op een dia betrouwbaar vinden als de interne ID onbekend is?
Ken een alternatieve tekst toe en zoek daarop. Het instellen van een onderscheidende AltText op het SmartArt stelt u in staat het programmatisch te vinden zonder te vertrouwen op interne identificatoren.
Blijft het uiterlijk van SmartArt behouden bij het converteren van de presentatie naar PDF?
Ja. Aspose.Slides rendert SmartArt met een hoge visuele nauwkeurigheid tijdens de PDF‑export, waarbij lay-out, kleuren en effecten behouden blijven.
Kan ik een afbeelding van de volledige SmartArt extraheren (voor voorbeeldweergaven of rapporten)?
Ja. U kunt een SmartArt‑vorm renderen naar rasterformaten of naar SVG voor schaalbare vectoruitvoer, waardoor het geschikt is voor miniaturen, rapporten of webgebruik.