Beheer SmartArt in PowerPoint-presentaties met C++
Overzicht
SmartArt is een PowerPoint‑diagram dat bestaat uit knooppunten, knooppuntvormen en een lay‑out. Met Aspose.Slides voor C++ kunt u SmartArt maken, tekst lezen uit de knooppunten, de lay‑out wijzigen, verborgen knooppunten inspecteren, organigramlay‑outs configureren en afbeeldingorganigrammen maken.
Tekst ophalen uit een SmartArt‑object
Een SmartArt‑knooppunt kan een of meerdere vormen bevatten. Om de zichtbare tekst te lezen, doorloopt u ISmartArt::get_AllNodes, en leest u vervolgens het ITextFrame dat wordt geretourneerd door ISmartArtShape::get_TextFrame.
auto presentation = System::MakeObject<Presentation>(u"sample.pptx");
auto slide = presentation->get_Slide(0);
auto shape = slide->get_Shape(0);
if (System::ObjectExt::Is<ISmartArt>(shape))
{
auto smartArt = System::ExplicitCast<ISmartArt>(shape);
for (int nodeIndex = 0; nodeIndex < smartArt->get_AllNodes()->get_Count(); nodeIndex++)
{
auto node = smartArt->get_AllNodes()->idx_get(nodeIndex);
for (int shapeIndex = 0; shapeIndex < node->get_Shapes()->get_Count(); shapeIndex++)
{
auto nodeShape = node->get_Shape(shapeIndex);
if (nodeShape->get_TextFrame() != nullptr)
{
System::Console::WriteLine(nodeShape->get_TextFrame()->get_Text());
}
}
}
}
presentation->Dispose();
Lay‑outtype van een SmartArt‑object wijzigen
De SmartArt‑lay‑out bepaalt hoe knooppunten worden gerangschikt en met elkaar verbonden. Het volgende voorbeeld maakt een SmartArt‑object met de SmartArtLayoutType‑waarde BasicBlockList, wijzigt deze naar de BasicProcess‑waarde en slaat de presentatie op.
auto presentation = System::MakeObject<Presentation>();
auto smartArt = presentation->get_Slide(0)->get_Shapes()->AddSmartArt(
10.0f, 10.0f, 400.0f, 300.0f, SmartArtLayoutType::BasicBlockList);
smartArt->set_Layout(SmartArtLayoutType::BasicProcess);
presentation->Save(u"ChangeSmartArtLayout_out.pptx", SaveFormat::Pptx);
presentation->Dispose();
Controleren of een SmartArt‑knooppunt verborgen is
ISmartArtNode::get_IsHidden geeft aan of het knooppunt verborgen is in het SmartArt‑datamodel. Verborgen knooppunten kunnen bestaan in de structuur, zelfs als de geselecteerde lay‑out ze niet als zichtbare diagramonderdelen weergeeft.
Het volgende voorbeeld voegt een knooppunt toe aan een SmartArt‑object dat de SmartArtLayoutType‑waarde RadialCycle gebruikt en controleert de verborgen status van het knooppunt.
auto presentation = System::MakeObject<Presentation>();
auto smartArt = presentation->get_Slide(0)->get_Shapes()->AddSmartArt(
10.0f, 10.0f, 400.0f, 300.0f, SmartArtLayoutType::RadialCycle);
auto node = smartArt->get_AllNodes()->AddNode();
bool isHidden = node->get_IsHidden();
if (isHidden)
{
System::Console::WriteLine(u"The node is hidden in the SmartArt data model.");
}
presentation->Save(u"CheckSmartArtHiddenProperty_out.pptx", SaveFormat::Pptx);
presentation->Dispose();
Organigramlay‑out ophalen of instellen
Voor SmartArt‑diagrammen die een organigram‑lay‑out gebruiken, definiëren ISmartArtNode::get_OrganizationChartLayout en ISmartArtNode::set_OrganizationChartLayout hoe onderliggende knooppunten onder een bovenliggend knooppunt worden gerangschikt. Bijvoorbeeld, u kunt onderliggende knooppunten laten hangen aan de linker‑, rechter‑ of beide zijden, afhankelijk van de geselecteerde OrganizationChartLayoutType.
Het volgende voorbeeld maakt een organigram en stelt de lay‑out van het eerste knooppunt in op de OrganizationChartLayoutType‑waarde LeftHanging.
auto presentation = System::MakeObject<Presentation>();
auto smartArt = presentation->get_Slide(0)->get_Shapes()->AddSmartArt(
10.0f, 10.0f, 400.0f, 300.0f, SmartArtLayoutType::OrganizationChart);
auto rootNode = smartArt->get_Node(0);
rootNode->set_OrganizationChartLayout(OrganizationChartLayoutType::LeftHanging);
presentation->Save(u"OrganizationChartLayout_out.pptx", SaveFormat::Pptx);
presentation->Dispose();
Een afbeelding‑organigram maken
Een afbeelding‑organigram is een SmartArt‑lay‑out die is ontworpen voor hiërarchiediagrammen met afbeelding‑plaatsaanduidingen. Gebruik de SmartArtLayoutType‑waarde PictureOrganizationChart bij het toevoegen van het SmartArt‑object aan een dia.
auto presentation = System::MakeObject<Presentation>();
auto smartArt = presentation->get_Slide(0)->get_Shapes()->AddSmartArt(
0.0f, 0.0f, 400.0f, 400.0f, SmartArtLayoutType::PictureOrganizationChart);
presentation->Save(u"PictureOrganizationChart_out.pptx", SaveFormat::Pptx);
presentation->Dispose();
FAQ
Ondersteunt SmartArt spiegelen of omkeren voor RTL‑talen?
Ja. De SmartArt::set_IsReversed‑methode schakelt de diagramrichting van links‑naar‑rechts naar rechts‑naar‑links, of terug, wanneer de gekozen SmartArt‑lay‑out omkering ondersteunt.
Hoe kan ik SmartArt kopiëren naar dezelfde dia of naar een andere presentatie terwijl de opmaak behouden blijft?
U kunt de SmartArt‑vorm clonen met ShapeCollection::AddClone of de hele dia die de SmartArt bevat clonen. Beide methoden behouden grootte, positie en opmaak.
Hoe render ik SmartArt naar een rasterafbeelding voor voorbeeld of webexport?
Render de dia of de volledige presentatie naar PNG of JPEG. SmartArt wordt gerenderd als onderdeel van de dia.
Hoe kan ik een specifiek SmartArt‑object op een dia vinden als er meerdere zijn?
Stel een onderscheidende Shape::set_AlternativeText‑ of Shape::set_Name‑waarde in op de SmartArt‑vorm, zoek die waarde in BaseSlide::get_Shapes, en controleer vervolgens of de overeenkomende vorm een ISmartArt is.