Správa SmartArt v PowerPoint prezentacích pomocí Javy
Přehled
SmartArt je diagram PowerPointu vytvořený z uzlů, tvarů uzlů a rozvržení. S knihovnou Aspose.Slides pro Java můžete vytvářet SmartArt, číst text z jeho uzlů, měnit jeho rozvržení, kontrolovat skryté uzly, konfigurovat rozvržení organizačních diagramů a vytvářet obrázkové organizační diagramy.
Získat text ze SmartArt objektu
Uzel SmartArt může obsahovat jeden nebo více tvarů. Pro načtení viditelného textu iterujte přes ISmartArt.getAllNodes, poté přečtěte ITextFrame , který vrací ISmartArtShape.getTextFrame.
Presentation presentation = new Presentation("sample.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IShape shape = slide.getShapes().get_Item(0);
if (shape instanceof ISmartArt) {
ISmartArt smartArt = (ISmartArt) shape;
for (ISmartArtNode node : smartArt.getAllNodes()) {
for (ISmartArtShape nodeShape : node.getShapes()) {
if (nodeShape.getTextFrame() != null) {
System.out.println(nodeShape.getTextFrame().getText());
}
}
}
}
} finally {
presentation.dispose();
}
Změnit typ rozvržení SmartArt objektu
Rozvržení SmartArt určuje, jak jsou uzly uspořádány a propojeny. Následující příklad vytvoří SmartArt objekt s hodnotou SmartArtLayoutType BasicBlockList, změní ji na hodnotu BasicProcess a uloží prezentaci.
Presentation presentation = new Presentation();
try {
ISmartArt smartArt = presentation.getSlides().get_Item(0).getShapes().addSmartArt(
10, 10, 400, 300, SmartArtLayoutType.BasicBlockList);
smartArt.setLayout(SmartArtLayoutType.BasicProcess);
presentation.save("ChangeSmartArtLayout_out.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Zkontrolovat, zda je uzel SmartArt skrytý
ISmartArtNode.isHidden udává, zda je uzel skrytý v datovém modelu SmartArt. Skryté uzly mohou ve struktuře existovat i když vybrané rozvržení nezobrazuje je jako viditelné diagramové prvky.
Následující příklad přidá uzel do SmartArt objektu, který používá hodnotu SmartArtLayoutType RadialCycle, a zkontroluje stav skrytí uzlu.
Presentation presentation = new Presentation();
try {
ISmartArt smartArt = presentation.getSlides().get_Item(0).getShapes().addSmartArt(
10, 10, 400, 300, SmartArtLayoutType.RadialCycle);
ISmartArtNode node = smartArt.getAllNodes().addNode();
boolean isHidden = node.isHidden();
if (isHidden) {
System.out.println("The node is hidden in the SmartArt data model.");
}
presentation.save("CheckSmartArtHiddenProperty_out.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Získat nebo nastavit rozvržení organizačního diagramu
Pro diagramy SmartArt, které používají rozvržení organizačního diagramu, ISmartArtNode.getOrganizationChartLayout a ISmartArtNode.setOrganizationChartLayout určují, jak jsou podřízené uzly uspořádány pod nadřazeným uzlem. Například můžete nastavit podřízené uzly, aby visely zleva, zprava nebo z obou stran, v závislosti na vybraném OrganizationChartLayoutType.
Následující příklad vytvoří organizační diagram a nastaví rozvržení pro první uzel na hodnotu OrganizationChartLayoutType LeftHanging.
Presentation presentation = new Presentation();
try {
ISmartArt smartArt = presentation.getSlides().get_Item(0).getShapes().addSmartArt(
10, 10, 400, 300, SmartArtLayoutType.OrganizationChart);
ISmartArtNode rootNode = smartArt.getNodes().get_Item(0);
rootNode.setOrganizationChartLayout(OrganizationChartLayoutType.LeftHanging);
presentation.save("OrganizationChartLayout_out.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Vytvořit obrázkový organizační diagram
Obrázkový organizační diagram je rozvržení SmartArt určené pro hierarchické diagramy, které obsahují zástupné obrázky. Při přidávání objektu SmartArt na snímek použijte hodnotu SmartArtLayoutType PictureOrganizationChart.
Presentation presentation = new Presentation();
try {
ISmartArt smartArt = presentation.getSlides().get_Item(0).getShapes().addSmartArt(
0, 0, 400, 400, SmartArtLayoutType.PictureOrganizationChart);
presentation.save("PictureOrganizationChart_out.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Často kladené otázky
Podporuje SmartArt zrcadlení nebo převrácení pro RTL jazyky?
Ano. Metoda ISmartArt.setReversed přepíná směr diagramu z levého na pravý na pravý na levý, nebo zpět, pokud vybrané rozvržení SmartArt podporuje převrácení.
Jak mohu zkopírovat SmartArt na stejný snímek nebo do jiné prezentace při zachování formátování?
Můžete klonovat tvar SmartArt pomocí ShapeCollection.addClone nebo klonovat celý snímek , který SmartArt obsahuje. Oba přístupy zachovávají velikost, umístění a formátování.
Jak mohu vykreslit SmartArt do rastrového obrázku pro náhled nebo webový export?
Vykreslete snímek nebo celou prezentaci do formátu PNG nebo JPEG. SmartArt je vykreslen jako součást snímku.
Jak mohu najít konkrétní SmartArt objekt na snímku, pokud jich je několik?
Nastavte jedinečnou hodnotu Shape.getAlternativeText nebo Shape.getName na tvar SmartArt, vyhledejte tuto hodnotu v BaseSlide.getShapes , a poté zkontrolujte, že odpovídající tvar je ISmartArt.