Zarządzanie grafikami SmartArt w prezentacjach na Androidzie

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 dla Androida za pośrednictwem Javy udostępnia interfejs API do tworzenia kształtów SmartArt. Aby utworzyć kształt SmartArt na slajdzie, należy postępować zgodnie z poniższymi krokami:

  1. Utwórz instancję klasy Presentation.
  2. Uzyskaj referencję do slajdu przy użyciu 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 Smart Art
    ISmartArt smart = slide.getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.BasicBlockList);
    
    // Zapisz prezentację
    pres.save("SimpleSmartArt.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}
todo:image_alt_text
Rysunek: Kształt SmartArt dodany do slajdu

Dostęp do kształtu SmartArt na slajdzie

Poniższy kod będzie używany do uzyskania dostępu do kształtów SmartArt dodanych w slajdzie prezentacji. W przykładowym kodzie przejdziemy przez każdy kształt wewnątrz slajdu i sprawdzimy, czy jest on kształtem SmartArt. Jeśli kształt jest typu SmartArt, dokonamy rzutowania go 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 zauważyć, że nie można zmienić LayoutType SmartArt, ponieważ jest on tylko do odczytu i jest ustawiany wyłącznie w momencie dodania kształtu SmartArt.

  1. Utwórz instancję klasy Presentation i wczytaj prezentację zawierającą kształt SmartArt.
  2. Uzyskaj referencję do pierwszego slajdu przy użyciu 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 SmartArt.
  5. Sprawdź kształt SmartArt o określonym LayoutType i wykonaj niezbędne 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 wczytaj prezentację zawierającą kształt SmartArt.
  2. Uzyskaj referencję do pierwszego slajdu przy użyciu 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 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 {
    // Pobierz 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
Rysunek: 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 go.

  1. Utwórz instancję klasy Presentation i wczytaj prezentację zawierającą kształt SmartArt.
  2. Uzyskaj referencję do pierwszego slajdu przy użyciu 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 SmartArt.
  5. Znajdź kształt SmartArt o określonym stylu kolorów.
  6. Ustaw nowy styl kolorów dla kształtu SmartArt.
  7. Zapisz prezentację.
// Utwórz instancję klasy Presentation
Presentation pres = new Presentation("SimpleSmartArt.pptx");
try {
    // Pobierz 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
Rysunek: 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 (animacje wejścia, wyjścia, podkreślenia, ś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) i 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 miniaturkę/obraz kształtu; biblioteka może renderować pojedyncze 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 jakości przy eksportowaniu do PDF, oferując różne opcje jakości i kompatybilności.