SmartArt kezelése PowerPoint prezentációkban Python használatával
Áttekintés
SmartArt egy PowerPoint diagram, amely csomópontokból, csomópontalakzatokból és egy elrendezésből áll. Az Aspose.Slides for Python via Java segítségével létrehozhat SmartArt-ot, kiolvashatja a szöveget a csomópontjaiból, módosíthatja az elrendezést, ellenőrizheti a rejtett csomópontokat, konfigurálhatja a szervezeti diagram elrendezéseket, és képes szervezeti diagramokat hozhat létre képekkel.
Szöveg lekérése egy SmartArt objektumból
Egy SmartArt csomópont több alakzatot is tartalmazhat. A látható szöveg beolvasásához iteráljon a SmartArt.getAllNodes, majd olvassa el a SmartArtShape.getTextFrame által visszaadott TextFrame.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SmartArt
presentation = Presentation("sample.pptx")
try:
slide = presentation.getSlides().get_Item(0)
shape = slide.getShapes().get_Item(0)
if isinstance(shape, SmartArt):
smart_art = shape
for node in smart_art.getAllNodes():
for node_shape in node.getShapes():
if node_shape.getTextFrame() is not None:
print(node_shape.getTextFrame().getText())
finally:
presentation.dispose()
SmartArt objektum elrendezéstípusának módosítása
A SmartArt elrendezés szabályozza, hogyan vannak elrendezve és összekapcsolva a csomópontok. Az alábbi példa egy SmartArt objektumot hoz létre a SmartArtLayoutType BasicBlockList értékkel, átállítja BasicProcess értékre, és elmenti a bemutatót.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, SmartArtLayoutType
presentation = Presentation()
try:
smart_art = presentation.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, SmartArtLayoutType.BasicBlockList)
smart_art.setLayout(SmartArtLayoutType.BasicProcess)
presentation.save("ChangeSmartArtLayout_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Ellenőrizze, hogy egy SmartArt csomópont rejtett-e
SmartArtNode.isHidden azt jelzi, hogy a csomópont rejtett-e a SmartArt adatmodellben. Rejtett csomópontok létezhetnek a struktúrában akkor is, ha a kiválasztott elrendezés nem jeleníti meg őket látható diagramelemként.
Az alábbi példa egy csomópontot ad egy SmartArt objektumhoz, amely a SmartArtLayoutType RadialCycle értéket használja, és ellenőrzi a csomópont rejtett állapotát.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, SmartArtLayoutType
presentation = Presentation()
try:
smart_art = presentation.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, SmartArtLayoutType.RadialCycle)
node = smart_art.getAllNodes().addNode()
is_hidden = node.isHidden()
if is_hidden:
print("The node is hidden in the SmartArt data model.")
presentation.save("CheckSmartArtHiddenProperty_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Az szervezeti diagram elrendezésének lekérdezése vagy beállítása
Azoknál a SmartArt diagramoknál, amelyek szervezeti diagram elrendezést használnak, a SmartArtNode.getOrganizationChartLayout és a SmartArtNode.setOrganizationChartLayout határozzák meg, hogyan vannak elrendezve a gyermekcsomópontok egy szülőcsomópont alatt. Például beállíthatja, hogy a gyermekcsomópontok balra, jobbra vagy mindkét oldalra függjenek, a kiválasztott OrganizationChartLayoutType függvényében.
Az alábbi példa egy szervezeti diagramot hoz létre, és az első csomópont elrendezését a OrganizationChartLayoutType LeftHanging értékre állítja.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import OrganizationChartLayoutType, Presentation, SaveFormat, SmartArtLayoutType
presentation = Presentation()
try:
smart_art = presentation.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, SmartArtLayoutType.OrganizationChart)
root_node = smart_art.getNodes().get_Item(0)
root_node.setOrganizationChartLayout(OrganizationChartLayoutType.LeftHanging)
presentation.save("OrganizationChartLayout_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Képes szervezeti diagram létrehozása
A képes szervezeti diagram egy olyan SmartArt elrendezés, amely hierarchia diagramokhoz készült, és képtartalék helyeket tartalmaz. Használja a SmartArtLayoutType PictureOrganizationChart értéket a SmartArt objektum diára való felvitelekor.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, SmartArtLayoutType
presentation = Presentation()
try:
smart_art = presentation.getSlides().get_Item(0).getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.PictureOrganizationChart)
presentation.save("PictureOrganizationChart_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
GYIK
Támogatja a SmartArt a tükrözést vagy megfordítást jobb‑bal (RTL) nyelvek esetén?
Igen. A SmartArt.setReversed metódus megfordítja a diagram irányát balról jobbra és jobbról balra, vagy vissza, ha a kiválasztott SmartArt elrendezés támogatja a megfordítást.
Hogyan másolhatom a SmartArt-ot ugyanarra a diára vagy egy másik bemutatóba, miközben megtartom a formázást?
A klónozza a SmartArt alakzatot a ShapeCollection.addClone vagy a klónozza a teljes diát a SmartArt-ot tartalmazó diát másolhatja. Mindkét módszer megőrzi a méretet, a pozíciót és a formázást.
Hogyan renderelhetem a SmartArt-ot raszteres képre előnézethez vagy webes exporthoz?
Renderelje a diát vagy a teljes bemutatót PNG vagy JPEG formátumba. A SmartArt a dia részeként kerül renderelésre.
Hogyan találhatok meg egy konkrét SmartArt objektumot a dián, ha több is van?
Állítson be egy egyedi Shape.getAlternativeText vagy Shape.getName értéket a SmartArt alakzaton, keresse meg ezt az értéket a BaseSlide.getShapes segítségével, majd ellenőrizze, hogy a megtalált alakzat egy SmartArt.