Zarządzanie grafiką SmartArt w prezentacjach przy użyciu JavaScript
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 poprzez kolekcję 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 Node.js via Java udostępnia API do tworzenia kształtów SmartArt. Aby utworzyć kształt SmartArt na slajdzie, wykonaj poniższe kroki:
- Utwórz instancję klasy Presentation.
- Uzyskaj odwołanie do slajdu, używając jego indeksu.
- Dodaj kształt SmartArt ustawiając jego LayoutType.
- Zapisz zmodyfikowaną prezentację jako plik PPTX.
// Utwórz instancję klasy Presentation
var pres = new aspose.slides.Presentation();
try {
// Pobierz pierwszy slajd
var slide = pres.getSlides().get_Item(0);
// Dodaj kształt Smart Art
var smart = slide.getShapes().addSmartArt(0, 0, 400, 400, aspose.slides.SmartArtLayoutType.BasicBlockList);
// Zapisywanie prezentacji
pres.save("SimpleSmartArt.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
![]() |
|---|
| Rysunek: Kształt SmartArt dodany do slajdu |
Dostęp do kształtu SmartArt na slajdzie
Poniższy kod zostanie użyty do uzyskania dostępu do kształtów SmartArt dodanych w 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.
// Wczytaj wybraną prezentację
var pres = new aspose.slides.Presentation("AccessSmartArtShape.pptx");
try {
// Przejdź przez każdy kształt wewnątrz pierwszego slajdu
for (let i = 0; i < pres.getSlides().get_Item(0).getShapes().size(); i++) {
let shape = pres.getSlides().get_Item(0).getShapes().get_Item(i);
// Sprawdź, czy kształt jest typu SmartArt
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// Rzutuj kształt na SmartArtEx
var smart = shape;
console.log("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 konkretnym LayoutType. Należy pamiętać, że nie można zmienić LayoutType SmartArt, ponieważ jest on tylko do odczytu i ustawia się go wyłącznie podczas dodawania kształtu SmartArt.
- Utwórz instancję klasy Presentation i wczytaj prezentację z kształtem SmartArt.
- Uzyskaj odwołanie do pierwszego slajdu, używając jego indeksu.
- Przejdź przez każdy kształt wewnątrz pierwszego slajdu.
- Sprawdź, czy kształt jest typu SmartArt i rzutuj wybrany kształt na SmartArt, jeśli tak jest.
- Sprawdź kształt SmartArt o określonym LayoutType i wykonaj wymagane operacje.
var pres = new aspose.slides.Presentation("AccessSmartArtShape.pptx");
try {
// Przejdź przez każdy kształt wewnątrz pierwszego slajdu
for (let i = 0; i < pres.getSlides().get_Item(0).getShapes().size(); i++) {
let shape = pres.getSlides().get_Item(0).getShapes().get_Item(i);
// Sprawdź, czy kształt jest typu SmartArt
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// Rzutuj kształt na SmartArtEx
var smart = shape;
// Sprawdzanie układu SmartArt
if (smart.getLayout() == aspose.slides.SmartArtLayoutType.BasicBlockList) {
console.log("Do some thing here....");
}
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
Zmienianie stylu kształtu SmartArt
W tym przykładzie nauczymy się zmieniać szybki styl dowolnego kształtu SmartArt.
- Utwórz instancję klasy Presentation i wczytaj prezentację z kształtem SmartArt.
- Uzyskaj odwołanie do pierwszego slajdu, używając jego indeksu.
- Przejdź przez każdy kształt wewnątrz pierwszego slajdu.
- Sprawdź, czy kształt jest typu SmartArt i rzutuj wybrany kształt na SmartArt, jeśli tak jest.
- Znajdź kształt SmartArt o określonym stylu.
- Ustaw nowy styl dla kształtu SmartArt.
- Zapisz prezentację.
// Utwórz instancję klasy Presentation
var pres = new aspose.slides.Presentation("SimpleSmartArt.pptx");
try {
// Pobierz pierwszy slajd
var slide = pres.getSlides().get_Item(0);
// Przejdź przez każdy kształt wewnątrz pierwszego slajdu
for (let i = 0; i < slide.getShapes().size(); i++) {
let shape = slide.getShapes().get_Item(i);
// Sprawdź, czy kształt jest typu SmartArt
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// Rzutuj kształt na SmartArtEx
var smart = shape;
// Sprawdzanie stylu SmartArt
if (smart.getQuickStyle() == aspose.slides.SmartArtQuickStyleType.SimpleFill) {
// Zmiana stylu SmartArt
smart.setQuickStyle(aspose.slides.SmartArtQuickStyleType.Cartoon);
}
}
}
// Zapisywanie prezentacji
pres.save("ChangeSmartArtStyle.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
pres.dispose();
}
![]() |
|---|
| Rysunek: Kształt SmartArt ze zmienionym stylem |
Zmienianie stylu kolorów kształtu SmartArt
W tym przykładzie nauczymy się zmieniać styl kolorów dowolnego kształtu SmartArt. W poniższym przykładzie kodu uzyskamy dostęp do kształtu SmartArt o określonym stylu kolorów i zmienimy go.
- Utwórz instancję klasy Presentation i wczytaj prezentację z kształtem SmartArt.
- Uzyskaj odwołanie do pierwszego slajdu, używając jego indeksu.
- Przejdź przez każdy kształt wewnątrz pierwszego slajdu.
- Sprawdź, czy kształt jest typu SmartArt i rzutuj wybrany kształt na SmartArt, jeśli tak jest.
- Znajdź kształt SmartArt o określonym stylu kolorów.
- Ustaw nowy styl kolorów dla kształtu SmartArt.
- Zapisz prezentację.
// Utwórz instancję klasy Presentation
var pres = new aspose.slides.Presentation("SimpleSmartArt.pptx");
try {
// Pobierz pierwszy slajd
var slide = pres.getSlides().get_Item(0);
// Przejdź przez każdy kształt wewnątrz pierwszego slajdu
for (let i = 0; i < slide.getShapes().size(); i++) {
let shape = slide.getShapes().get_Item(i);
// Sprawdź, czy kształt jest typu SmartArt
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// Rzutuj kształt na SmartArtEx
var smart = shape;
// Sprawdzanie typu koloru SmartArt
if (smart.getColorStyle() == aspose.slides.SmartArtColorType.ColoredFillAccent1) {
// Zmienianie typu koloru SmartArt
smart.setColorStyle(aspose.slides.SmartArtColorType.ColorfulAccentColors);
}
}
}
// Zapisywanie prezentacji
pres.save("ChangeSmartArtColorStyle.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
pres.dispose();
}
![]() |
|---|
| 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 (wejścia, wyjścia, podkreślenia, ścieżki ruchu) tak samo, jak w przypadku innych kształtów.
Jak znaleźć konkretny SmartArt na slajdzie, gdy nie znam jego wewnętrznego identyfikatora?
Ustaw i użyj tekstu alternatywnego (AltText) oraz przeszukaj kształt po tej wartości – jest to zalecany sposób lokalizacji 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ć 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 wierności przy eksportowaniu do PDF, oferując szereg opcji jakości i kompatybilności.

