Zarządzanie SmartArt w prezentacjach PowerPoint w .NET
Przegląd
SmartArt to diagram programu PowerPoint składający się z węzłów, kształtów węzłów i układu. Dzięki Aspose.Slides dla .NET możesz tworzyć SmartArt, odczytywać tekst z jego węzłów, zmieniać jego układ, przeglądać ukryte węzły, konfigurować układy diagramów organizacyjnych oraz tworzyć diagramy organizacyjne z obrazami.
Pobieranie tekstu z obiektu SmartArt
Węzeł SmartArt może zawierać jeden lub więcej kształtów. Aby odczytać widoczny tekst, przeiteruj ISmartArt.AllNodes, a następnie odczytaj ITextFrame zwrócony przez ISmartArtShape.TextFrame.
using (Presentation presentation = new Presentation("sample.pptx"))
{
ISlide slide = presentation.Slides[0];
if (slide.Shapes[0] is ISmartArt smartArt)
{
foreach (ISmartArtNode node in smartArt.AllNodes)
{
foreach (ISmartArtShape nodeShape in node.Shapes)
{
if (nodeShape.TextFrame != null)
{
Console.WriteLine(nodeShape.TextFrame.Text);
}
}
}
}
}
Zmiana typu układu obiektu SmartArt
Układ SmartArt określa, jak węzły są rozmieszczane i łączone. Poniższy przykład tworzy obiekt SmartArt z wartością SmartArtLayoutType BasicBlockList, zmienia ją na wartość BasicProcess i zapisuje prezentację.
using (Presentation presentation = new Presentation())
{
ISmartArt smartArt = presentation.Slides[0].Shapes.AddSmartArt(
10, 10, 400, 300, SmartArtLayoutType.BasicBlockList);
smartArt.Layout = SmartArtLayoutType.BasicProcess;
presentation.Save("ChangeSmartArtLayout_out.pptx", SaveFormat.Pptx);
}
Sprawdzanie, czy węzeł SmartArt jest ukryty
ISmartArtNode.IsHidden wskazuje, czy węzeł jest ukryty w modelu danych SmartArt. Ukryte węzły mogą istnieć w strukturze, nawet gdy wybrany układ nie wyświetla ich jako widoczne elementy diagramu.
Poniższy przykład dodaje węzeł do obiektu SmartArt, który używa wartości SmartArtLayoutType RadialCycle, i sprawdza stan ukrycia węzła.
using (Presentation presentation = new Presentation())
{
ISmartArt smartArt = presentation.Slides[0].Shapes.AddSmartArt(
10, 10, 400, 300, SmartArtLayoutType.RadialCycle);
ISmartArtNode node = smartArt.AllNodes.AddNode();
bool isHidden = node.IsHidden;
if (isHidden)
{
Console.WriteLine("The node is hidden in the SmartArt data model.");
}
presentation.Save("CheckSmartArtHiddenProperty_out.pptx", SaveFormat.Pptx);
}
Pobieranie lub ustawianie układu diagramu organizacyjnego
Dla diagramów SmartArt używających układu diagramu organizacyjnego, ISmartArtNode.OrganizationChartLayout określa, jak węzły podrzędne są rozmieszczane pod węzłem nadrzędnym. Na przykład możesz ustawić węzły podrzędne, aby zwisały po lewej, prawej lub po obu stronach, w zależności od wybranego OrganizationChartLayoutType.
Poniższy przykład tworzy diagram organizacyjny i ustawia układ pierwszego węzła na wartość OrganizationChartLayoutType LeftHanging.
using (Presentation presentation = new Presentation())
{
ISmartArt smartArt = presentation.Slides[0].Shapes.AddSmartArt(
10, 10, 400, 300, SmartArtLayoutType.OrganizationChart);
ISmartArtNode rootNode = smartArt.Nodes[0];
rootNode.OrganizationChartLayout = OrganizationChartLayoutType.LeftHanging;
presentation.Save("OrganizationChartLayout_out.pptx", SaveFormat.Pptx);
}
Tworzenie diagramu organizacyjnego z obrazem
Diagram organizacyjny z obrazem to układ SmartArt przeznaczony dla diagramów hierarchicznych zawierających miejsca na obrazy. Użyj wartości SmartArtLayoutType PictureOrganizationChart przy dodawaniu obiektu SmartArt do slajdu.
using (Presentation presentation = new Presentation())
{
ISmartArt smartArt = presentation.Slides[0].Shapes.AddSmartArt(
0, 0, 400, 400, SmartArtLayoutType.PictureOrganizationChart);
presentation.Save("PictureOrganizationChart_out.pptx", SaveFormat.Pptx);
}
FAQ
Czy SmartArt obsługuje odbicie lustrzane lub odwracanie dla języków RTL?
Tak. Właściwość IsReversed zmienia kierunek diagramu z lewej na prawą (left-to-right) na prawą na lewą (right-to-left) lub odwrotnie, gdy wybrany układ SmartArt obsługuje odwracanie.
Jak mogę skopiować SmartArt na ten sam slajd lub do innej prezentacji, zachowując formatowanie?
Możesz klonować kształt SmartArt za pomocą ShapeCollection.AddClone albo sklonować cały slajd zawierający SmartArt. Oba podejścia zachowują rozmiar, położenie i formatowanie.
Jak wyrenderować SmartArt do obrazu rastrowego w celu podglądu lub eksportu na stronę?
Renderuj slajd lub całą prezentację do formatu PNG lub JPEG. SmartArt jest renderowany jako część slajdu.
Jak mogę znaleźć konkretny obiekt SmartArt na slajdzie, jeśli jest ich kilka?
Ustaw unikalną wartość AlternativeText lub Name na kształcie SmartArt, wyszukaj tę wartość w Slide.Shapes, a następnie sprawdź, czy pasujący kształt jest ISmartArt.