Zarządzanie węzłami kształtu SmartArt w prezentacjach przy użyciu C++

Przegląd

Grafika SmartArt w prezentacjach PowerPoint jest organizowana za pomocą węzłów, które zawierają tekst i definiują strukturę diagramu. Aspose.Slides umożliwia programowe operowanie na tych węzłach SmartArt: dodawanie nowych węzłów i węzłów podrzędnych, wstawianie węzłów podrzędnych w określonej pozycji, dostęp do istniejących węzłów oraz odczyt ich tekstu, poziomu i pozycji.

Ten artykuł wyjaśnia, jak zarządzać węzłami kształtów SmartArt. Pokazuje, jak usuwać węzły, pracować z węzłami podrzędnymi według indeksu lub pozycji, zmienić węzeł asystenta na węzeł normalny, dostosować pozycję, rozmiar i obrót kształtów węzła SmartArt, ustawić format wypełnienia węzła oraz wygenerować miniaturkę dla węzła podrzędnego SmartArt.

Dodawanie węzła SmartArt

Aspose.Slides for C++ udostępnia najprostsze API do zarządzania kształtami SmartArt w najłatwiejszy sposób. Poniższy przykładowy kod pomoże dodać węzeł i węzeł podrzędny wewnątrz kształtu SmartArt.

  • Utwórz instancję klasy Presentation i wczytaj prezentację z kształtem SmartArt.
  • Pobierz referencję pierwszego slajdu, używając jego indeksu.
  • Przejdź przez wszystkie kształty znajdujące się na pierwszym slajdzie.
  • Sprawdź, czy kształt jest typu SmartArt i rzutuj wybrany kształt na SmartArt, jeśli tak jest.
  • Dodaj nowy węzeł do kolekcji NodeCollection kształtu SmartArt i ustaw tekst w TextFrame.
  • Następnie dodaj węzeł podrzędny do nowo dodanego węzła SmartArt i ustaw tekst w TextFrame.
  • Zapisz prezentację.

Dodawanie węzła SmartArt w określonej pozycji

W poniższym przykładzie wyjaśniono, jak dodać węzły podrzędne należące do poszczególnych węzłów kształtu SmartArt w wybranej pozycji.

  • Utwórz instancję klasy Presentation.
  • Pobierz referencję pierwszego slajdu, używając jego indeksu.
  • Dodaj kształt SmartArt typu StackedList na wybranym slajdzie.
  • Uzyskaj dostęp do pierwszego węzła w dodanym kształcie SmartArt.
  • Dodaj węzeł podrzędny do wybranego węzła na pozycji 2 i ustaw jego tekst.
  • Zapisz prezentację.

Dostęp do węzła SmartArt

Poniższy przykładowy kod pomoże uzyskać dostęp do węzłów wewnątrz kształtu SmartArt. Należy pamiętać, że nie można zmienić właściwości LayoutType SmartArt, ponieważ jest ona tylko do odczytu i ustawia się ją wyłącznie w momencie dodania kształtu SmartArt.

  • Utwórz instancję klasy Presentation i wczytaj prezentację z kształtem SmartArt.
  • Pobierz referencję pierwszego slajdu, używając jego indeksu.
  • Przejdź przez wszystkie kształty znajdujące się na pierwszym slajdzie.
  • Sprawdź, czy kształt jest typu SmartArt i rzutuj wybrany kształt na SmartArt, jeśli tak jest.
  • Przejdź przez wszystkie węzły wewnątrz kształtu SmartArt.
  • Uzyskaj dostęp i wyświetl informacje, takie jak pozycja węzła SmartArt, poziom i tekst.

Dostęp do węzła podrzędnego SmartArt

Poniższy przykładowy kod pomoże uzyskać dostęp do węzłów podrzędnych należących do poszczególnych węzłów kształtu SmartArt.

  • Utwórz instancję klasy PresentationEx i wczytaj prezentację z kształtem SmartArt.
  • Pobierz referencję pierwszego slajdu, używając jego indeksu.
  • Przejdź przez wszystkie kształty znajdujące się na pierwszym slajdzie.
  • Sprawdź, czy kształt jest typu SmartArt i rzutuj wybrany kształt na SmartArtEx, jeśli tak jest.
  • Przejdź przez wszystkie węzły wewnątrz kształtu SmartArt.
  • Dla każdego wybranego węzła kształtu SmartArt przejdź przez wszystkie węzły podrzędne w danym węźle.
  • Uzyskaj dostęp i wyświetl informacje, takie jak pozycja węzła podrzędnego, poziom i tekst.

Dostęp do węzła podrzędnego SmartArt w określonej pozycji

W tym przykładzie nauczymy się uzyskiwać dostęp do węzłów podrzędnych w wybranej pozycji należących do odpowiednich węzłów kształtu SmartArt.

  • Utwórz instancję klasy Presentation.
  • Pobierz referencję pierwszego slajdu, używając jego indeksu.
  • Dodaj kształt SmartArt typu StackedList.
  • Uzyskaj dostęp do dodanego kształtu SmartArt.
  • Uzyskaj dostęp do węzła o indeksie 0 w wybranym kształcie SmartArt.
  • Następnie uzyskaj dostęp do węzła podrzędnego na pozycji 1 dla wybranego węzła SmartArt, używając metody GetNodeByPosition().
  • Uzyskaj dostęp i wyświetl informacje, takie jak pozycja węzła podrzędnego, poziom i tekst.

Usuwanie węzła SmartArt

W tym przykładzie nauczymy się usuwać węzły wewnątrz kształtu SmartArt.

  • Utwórz instancję klasy Presentation i wczytaj prezentację z kształtem SmartArt.
  • Pobierz referencję pierwszego slajdu, używając jego indeksu.
  • Przejdź przez wszystkie kształty znajdujące się na pierwszym slajdzie.
  • Sprawdź, czy kształt jest typu SmartArt i rzutuj wybrany kształt na SmartArt, jeśli tak jest.
  • Sprawdź, czy SmartArt ma więcej niż 0 węzłów.
  • Wybierz węzeł SmartArt do usunięcia.
  • Następnie usuń wybrany węzeł, używając metody RemoveNode().
  • Zapisz prezentację.

Usuwanie węzła SmartArt w określonej pozycji

W tym przykładzie nauczymy się usuwać węzły wewnątrz kształtu SmartArt w konkretnej pozycji.

  • Utwórz instancję klasy Presentation i wczytaj prezentację z kształtem SmartArt.
  • Pobierz referencję pierwszego slajdu, używając jego indeksu.
  • Przejdź przez wszystkie kształty znajdujące się na pierwszym slajdzie.
  • Sprawdź, czy kształt jest typu SmartArt i rzutuj wybrany kształt na SmartArt, jeśli tak jest.
  • Wybierz węzeł kształtu SmartArt o indeksie 0.
  • Sprawdź, czy wybrany węzeł SmartArt ma więcej niż 2 węzły podrzędne.
  • Usuń węzeł na pozycji 1, używając metody RemoveNodeByPosition().
  • Zapisz prezentację.

Ustawienie niestandardowej pozycji dla węzła podrzędnego SmartArt

Teraz Aspose.Slides obsługuje ustawianie właściwości X i Y kształtu SmartArt. Poniższy fragment kodu pokazuje, jak ustawić niestandardową pozycję, rozmiar i obrót kształtu SmartArt; należy pamiętać, że dodawanie nowych węzłów powoduje przeliczenie pozycji i rozmiarów wszystkich węzłów.

Sprawdzanie węzła asystenta

W poniższym przykładzie sprawdzimy, jak zidentyfikować węzły asystenta w kolekcji węzłów SmartArt i zmienić ich status.

  • Utwórz instancję klasy PresentationEx i wczytaj prezentację z kształtem SmartArt.
  • Pobierz referencję drugiego slajdu, używając jego indeksu.
  • Przejdź przez wszystkie kształty znajdujące się na pierwszym slajdzie.
  • Sprawdź, czy kształt jest typu SmartArt i rzutuj wybrany kształt na SmartArtEx, jeśli tak jest.
  • Przejdź przez wszystkie węzły wewnątrz kształtu SmartArt i sprawdź, czy są to węzły asystenta.
  • Zmień status węzła asystenta na węzeł normalny.
  • Zapisz prezentację.

Ustawienie formatu wypełnienia węzła

Aspose.Slides for C++ umożliwia dodawanie własnych kształtów SmartArt i ustawianie ich formatów wypełnienia. Ten artykuł wyjaśnia, jak tworzyć i uzyskiwać dostęp do kształtów SmartArt oraz ustawiać ich format wypełnienia przy użyciu Aspose.Slides for C++.

Proszę wykonać następujące kroki:

  • Utwórz instancję klasy Presentation.
  • Pobierz referencję slajdu, używając jego indeksu.
  • Dodaj kształt SmartArt, określając jego LayoutType.
  • Ustaw FillFormat dla węzłów kształtu SmartArt.
  • Zapisz zmodyfikowaną prezentację jako plik PPTX.

Generowanie miniaturki węzła podrzędnego SmartArt

Programiści mogą wygenerować miniaturkę węzła podrzędnego SmartArt, wykonując poniższe kroki:

  1. Utwórz instancję klasy Presentation, która reprezentuje plik PPTX.
  2. Dodaj SmartArt.
  3. Pobierz referencję węzła, używając jego indeksu.
  4. Uzyskaj obraz miniaturki.
  5. Zapisz miniaturkę w wybranym formacie obrazu.

Poniższy przykład generuje miniaturkę węzła podrzędnego SmartArt

auto presentation = MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);

auto smartArt = slide->get_Shapes()->AddSmartArt(10, 10, 400, 300, SmartArtLayoutType::BasicCycle);
auto node = smartArt->get_Node(1);

auto image = node->get_Shape(0)->GetImage();
image->Save(u"SmartArt_ChildNote_Thumbnail_out.jpeg", ImageFormat::Png);
image->Dispose();

presentation->Dispose();

FAQ

Czy animacje SmartArt są wspierane?

Tak. SmartArt jest traktowany jak zwykły kształt, więc można zastosować standardowe animacje (wejścia, wyjścia, podkreślenia, ścieżki ruchu) oraz dostosować ich czas. W razie potrzeby można animować także kształty wewnątrz węzłów SmartArt.

Jak mogę niezawodnie zlokalizować konkretny SmartArt na slajdzie, jeśli jego wewnętrzny identyfikator jest nieznany?

Użyj i wyszukuj po alternatywnym tekście. Ustawiając charakterystyczny AltText na elemencie SmartArt, można go odnaleźć programowo bez polegania na wewnętrznych identyfikatorach.

Czy wygląd SmartArt zostanie zachowany przy konwersji prezentacji do PDF?

Tak. Aspose.Slides renderuje SmartArt z wysoką wiernością wizualną podczas eksportu do PDF, zachowując układ, kolory i efekty.

Czy mogę wyodrębnić obraz całego SmartArt (np. do podglądów lub raportów)?

Tak. Można renderować kształt SmartArt do formatów rastrowych lub do SVG dla skalowalnego wyjścia wektorowego, co sprawdza się jako miniaturka, w raporcie lub na stronie internetowej.