Hantera SmartArt i PowerPoint-presentationer med Java
Översikt
SmartArt är ett PowerPoint‑diagram som består av noder, nodformer och en layout. Med Aspose.Slides for Java kan du skapa SmartArt, läsa text från dess noder, ändra dess layout, inspektera dolda noder, konfigurera organisation‑diagramlayouter och skapa bild‑organisation‑diagram.
Hämta text från ett SmartArt‑objekt
En SmartArt‑nod kan innehålla en eller flera former. För att läsa den synliga texten, iterera genom ISmartArt.getAllNodes, och läs sedan den ITextFrame som returneras av 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();
}
Ändra layouttyp för ett SmartArt‑objekt
SmartArt‑layouten styr hur noder ordnas och kopplas ihop. Följande exempel skapar ett SmartArt‑objekt med SmartArtLayoutType‑värdet BasicBlockList, ändrar det till BasicProcess och sparar presentationen.
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();
}
Kontrollera om en SmartArt‑nod är dold
ISmartArtNode.isHidden visar om noden är dold i SmartArt‑datamodellen. Dolda noder kan finnas i strukturen även när den valda layouten inte visar dem som synliga diagramdelar.
Följande exempel lägger till en nod i ett SmartArt‑objekt som använder SmartArtLayoutType‑värdet RadialCycle och kontrollerar nodens dolda tillstånd.
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();
}
Hämta eller ange layout för organisationsdiagram
För SmartArt‑diagram som använder en organisationsdiagramlayout definierar ISmartArtNode.getOrganizationChartLayout och ISmartArtNode.setOrganizationChartLayout hur underordnade noder placeras under en föräldranod. Du kan till exempel ställa in att underordnade noder hänger åt vänster, höger eller båda sidor, beroende på den valda OrganizationChartLayoutType.
Följande exempel skapar ett organisationsdiagram och sätter layouten för den första noden till OrganizationChartLayoutType‑värdet 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();
}
Skapa ett bild‑organisationsdiagram
Ett bild‑organisationsdiagram är en SmartArt‑layout avsedd för hierarkiska diagram som innehåller bildplatshållare. Använd SmartArtLayoutType‑värdet PictureOrganizationChart när du lägger till SmartArt‑objektet på en bild.
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();
}
FAQ
Stöder SmartArt spegling eller omvändning för RTL‑språk?
Ja. Metoden ISmartArt.setReversed växlar diagramriktningen från vänster‑till‑höger till höger‑till‑vänster, eller tillbaka, när den valda SmartArt‑layouten stödjer omvändning.
Hur kan jag kopiera SmartArt till samma bild eller till en annan presentation samtidigt som formateringen bevaras?
Du kan klona SmartArt‑formen med ShapeCollection.addClone eller klona hela bilden som innehåller SmartArt. Båda metoderna bevarar storlek, position och formatering.
Hur renderar jag SmartArt till en rasterbild för förhandsgranskning eller webbexport?
Rendera bilden eller hela presentationen till PNG eller JPEG. SmartArt renderas som en del av bilden.
Hur hittar jag ett specifikt SmartArt‑objekt på en bild om det finns flera?
Ange ett tydligt Shape.getAlternativeText‑ eller Shape.getName‑värde på SmartArt‑formen, sök efter det värdet i BaseSlide.getShapes, och kontrollera sedan att den matchande formen är en ISmartArt.