Zarządzanie grafiką SmartArt w prezentacjach przy użyciu Javy

Przegląd

Aspose.Slides umożliwia programowe tworzenie i zarządzanie grafikami SmartArt w prezentacjach PowerPoint. Ten artykuł wyjaśnia, jak dodać kształt SmartArt do slajdu, uzyskać dostęp do istniejących kształtów SmartArt, znaleźć SmartArt o określonym typie układu oraz zaktualizować jego wygląd, zmieniając styl SmartArt lub styl kolorów.

Przykłady pokazują, jak pracować z kształtami SmartArt za pośrednictwem kolekcji kształtów slajdu prezentacji, sprawdzić, czy kształt jest SmartArt, a następnie modyfikować lub przeglądać jego właściwości.

Utworzenie kształtu SmartArt

Aspose.Slides for Java udostępnia API do tworzenia kształtów SmartArt. Aby utworzyć kształt SmartArt na slajdzie, wykonaj poniższe kroki:

  1. Utwórz instancję klasy Presentation.
  2. Uzyskaj referencję do slajdu, używając jego indeksu.
  3. Dodaj kształt SmartArt ustawiając jego LayoutType.
  4. Zapisz zmodyfikowaną prezentację jako plik PPTX.
// Utwórz instancję klasy Presentation
Presentation pres = new Presentation();
try {
    // Pobierz pierwszy slajd
    ISlide slide = pres.getSlides().get_Item(0);
    
    // Dodaj kształt SmartArt
    ISmartArt smart = slide.getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.BasicBlockList);
    
    // Zapisywanie prezentacji
    pres.save("SimpleSmartArt.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}
todo:image_alt_text
Figure: Kształt SmartArt dodany do slajdu

Dostęp do kształtu SmartArt na slajdzie

Poniższy kod będzie używany do dostępu do kształtów SmartArt dodanych w slajdzie prezentacji. W przykładzie kodu przejdziemy przez każdy kształt wewnątrz slajdu i sprawdzimy, czy jest to kształt SmartArt. Jeśli kształt jest typu SmartArt, zostanie rzutowany na instancję SmartArt.

// Załaduj żądaną prezentację
Presentation pres = new Presentation("AccessSmartArtShape.pptx");
try {
    // Przejdź przez każdy kształt w pierwszym slajdzie
    for (IShape shape : pres.getSlides().get_Item(0).getShapes())
    {
        // Sprawdź, czy kształt jest typu SmartArt
        if (shape instanceof ISmartArt)
        {
            // Rzutuj kształt na SmartArtEx
            ISmartArt smart = (ISmartArt)shape;
            System.out.println("Shape Name:" + smart.getName());
        }
    }
} finally {
    if (pres != null) pres.dispose();
}

Dostęp do kształtu SmartArt o określonym typie układu

Poniższy przykładowy kod pomoże uzyskać dostęp do kształtu SmartArt o określonym LayoutType. Należy pamiętać, że nie można zmienić LayoutType w SmartArt, ponieważ jest on tylko do odczytu i ustawia się go wyłącznie podczas dodawania kształtu SmartArt.

  1. Utwórz instancję klasy Presentation i załaduj prezentację zawierającą kształt SmartArt.
  2. Uzyskaj referencję do pierwszego slajdu, używając jego indeksu.
  3. Przejdź przez każdy kształt w pierwszym slajdzie.
  4. Sprawdź, czy kształt jest typu SmartArt i rzutuj wybrany kształt na SmartArt, jeśli jest to SmartArt.
  5. Sprawdź kształt SmartArt o określonym LayoutType i wykonaj wymagane działania.
Presentation pres = new Presentation("AccessSmartArtShape.pptx");
try {
    // Przejdź przez każdy kształt w pierwszym slajdzie
    for (IShape shape : pres.getSlides().get_Item(0).getShapes())
    {
        // Sprawdź, czy kształt jest typu SmartArt
        if (shape instanceof ISmartArt)
        {
            // Rzutuj kształt na SmartArtEx
            ISmartArt smart = (ISmartArt) shape;

            // Sprawdzanie układu SmartArt
            if (smart.getLayout() == SmartArtLayoutType.BasicBlockList)
            {
                System.out.println("Do some thing here....");
            }
        }
    }
} finally {
    if (pres != null) pres.dispose();
}

Zmiana stylu kształtu SmartArt

W tym przykładzie nauczymy się zmieniać szybki styl dowolnego kształtu SmartArt.

  1. Utwórz instancję klasy Presentation i załaduj prezentację zawierającą kształt SmartArt.
  2. Uzyskaj referencję do pierwszego slajdu, używając jego indeksu.
  3. Przejdź przez każdy kształt w pierwszym slajdzie.
  4. Sprawdź, czy kształt jest typu SmartArt i rzutuj wybrany kształt na SmartArt, jeśli jest to SmartArt.
  5. Znajdź kształt SmartArt o określonym Stylu.
  6. Ustaw nowy Styl dla kształtu SmartArt.
  7. Zapisz prezentację.
// Utwórz instancję klasy Presentation
Presentation pres = new Presentation("SimpleSmartArt.pptx");
try {
    // Uzyskaj pierwszy slajd
    ISlide slide = pres.getSlides().get_Item(0);
    
    // Przejdź przez każdy kształt w pierwszym slajdzie
    for (IShape shape : slide.getShapes()) 
    {
        // Sprawdź, czy kształt jest typu SmartArt
        if (shape instanceof ISmartArt) 
        {
            // Rzutuj kształt na SmartArtEx
            ISmartArt smart = (ISmartArt) shape;
    
            // Sprawdzanie stylu SmartArt
            if (smart.getQuickStyle() == SmartArtQuickStyleType.SimpleFill) {
                // Zmienianie stylu SmartArt
                smart.setQuickStyle(SmartArtQuickStyleType.Cartoon);
            }
        }
    }
    // Zapisywanie prezentacji
    pres.save("ChangeSmartArtStyle.pptx", SaveFormat.Pptx);
} finally {
    pres.dispose();
}
todo:image_alt_text
Figure: Kształt SmartArt ze zmienionym stylem

Zmiana stylu kolorów kształtu SmartArt

W tym przykładzie nauczymy się zmieniać styl kolorów dowolnego kształtu SmartArt. W poniższym przykładowym kodzie uzyskamy dostęp do kształtu SmartArt o określonym stylu kolorów i zmienimy jego styl.

  1. Utwórz instancję klasy Presentation i załaduj prezentację zawierającą kształt SmartArt.
  2. Uzyskaj referencję do pierwszego slajdu, używając jego indeksu.
  3. Przejdź przez każdy kształt w pierwszym slajdzie.
  4. Sprawdź, czy kształt jest typu SmartArt i rzutuj wybrany kształt na SmartArt, jeśli jest to SmartArt.
  5. Znajdź kształt SmartArt o określonym Stylu Koloru.
  6. Ustaw nowy Styl Koloru dla kształtu SmartArt.
  7. Zapisz prezentację.
// Utwórz instancję klasy Presentation
Presentation pres = new Presentation("SimpleSmartArt.pptx");
try {
    // Uzyskaj pierwszy slajd
    ISlide slide = pres.getSlides().get_Item(0);
    
    // Przejdź przez każdy kształt w pierwszym slajdzie
    for (IShape shape : slide.getShapes()) 
    {
        // Sprawdź, czy kształt jest typu SmartArt
        if (shape instanceof ISmartArt) 
        {
            // Rzutuj kształt na SmartArtEx
            ISmartArt smart = (ISmartArt) shape;
    
            // Sprawdzanie typu koloru SmartArt
            if (smart.getColorStyle() == SmartArtColorType.ColoredFillAccent1) {
                // Zmienianie typu koloru SmartArt
                smart.setColorStyle(SmartArtColorType.ColorfulAccentColors);
            }
        }
    }
    // Zapisywanie prezentacji
    pres.save("ChangeSmartArtColorStyle.pptx", SaveFormat.Pptx);
} finally {
    pres.dispose();
}
todo:image_alt_text
Figure: Kształt SmartArt ze zmienionym stylem kolorów

FAQ

Czy mogę animować SmartArt jako pojedynczy obiekt?

Tak. SmartArt jest kształtem, więc możesz zastosować standardowe animacje za pomocą API animacji (wejście, wyjście, uwydatnienie, ścieżki ruchu) tak jak w przypadku innych kształtów.

Jak mogę znaleźć konkretny SmartArt na slajdzie, jeśli nie znam jego wewnętrznego ID?

Ustaw i użyj tekstu alternatywnego (AltText) oraz wyszukaj kształt po tej wartości — jest to zalecany sposób na zlokalizowanie docelowego kształtu.

Czy mogę grupować SmartArt z innymi kształtami?

Tak. Możesz grupować SmartArt z innymi kształtami (obrazami, tabelami itp.), a następnie manipulować grupą.

Jak uzyskać obraz konkretnego SmartArt (np. do podglądu lub raportu)?

Wyeksportuj miniaturę/obraz kształtu; biblioteka może renderować poszczególne kształty do plików rastrowych (PNG/JPG/TIFF).

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

Tak. Silnik renderujący dąży do wysokiej wierności przy eksportcie do PDF, oferując różne opcje jakości i kompatybilności.