Kelola Grafik SmartArt dalam Presentasi Menggunakan PHP
Gambaran Umum
Aspose.Slides memungkinkan Anda membuat dan mengelola grafik SmartArt dalam presentasi PowerPoint secara programatis. Artikel ini menjelaskan cara menambahkan bentuk SmartArt ke slide, mengakses bentuk SmartArt yang ada, menemukan SmartArt berdasarkan tipe tata letak tertentu, dan memperbarui tampilannya dengan mengubah gaya SmartArt atau gaya warna.
Contoh-contoh menunjukkan cara bekerja dengan bentuk SmartArt melalui koleksi bentuk slide presentasi, memeriksa apakah sebuah bentuk adalah SmartArt, lalu memodifikasi atau memeriksa propertinya.
Membuat Bentuk SmartArt
Aspose.Slides untuk PHP via Java telah menyediakan API untuk membuat bentuk SmartArt. Untuk membuat bentuk SmartArt dalam sebuah slide, ikuti langkah-langkah di bawah ini:
- Buat sebuah instance dari kelas Presentation.
- Dapatkan referensi slide dengan menggunakan Index‑nya.
- Tambahkan bentuk SmartArt dengan mengatur LayoutType.
- Simpan presentasi yang telah dimodifikasi sebagai file PPTX.
# Membuat Instance Kelas Presentation
$pres = new Presentation();
try {
# Dapatkan slide pertama
$slide = $pres->getSlides()->get_Item(0);
# Tambahkan Bentuk Smart Art
$smart = $slide->getShapes()->addSmartArt(0, 0, 400, 400, SmartArtLayoutType::BasicBlockList);
# Menyimpan presentasi
$pres->save("SimpleSmartArt.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
![]() |
|---|
| Gambar: Bentuk SmartArt ditambahkan ke slide |
Mengakses Bentuk SmartArt pada Slide
Kode berikut akan digunakan untuk mengakses bentuk SmartArt yang ditambahkan dalam slide presentasi. Dalam contoh kode kami akan menelusuri setiap bentuk di dalam slide dan memeriksa apakah itu merupakan bentuk SmartArt. Jika bentuk tersebut bertipe SmartArt, kami akan melakukan typecast ke instance SmartArt.
# Muat presentasi yang diinginkan
$pres = new Presentation("AccessSmartArtShape.pptx");
try {
# Jelajahi setiap bentuk di dalam slide pertama
foreach($pres->getSlides()->get_Item(0)->getShapes() as $shape) {
# Periksa apakah bentuk bertipe SmartArt
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Lakukan typecast bentuk ke SmartArtEx
$smart = $shape;
echo("Shape Name:" . $smart->getName());
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Mengakses Bentuk SmartArt dengan Tipe Tata Letak Tertentu
Contoh kode berikut akan membantu mengakses bentuk SmartArt dengan LayoutType tertentu. Perhatikan bahwa Anda tidak dapat mengubah LayoutType dari SmartArt karena bersifat read‑only dan hanya ditetapkan saat bentuk SmartArt ditambahkan.
- Buat sebuah instance kelas Presentation dan muat presentasi yang berisi Bentuk SmartArt.
- Dapatkan referensi slide pertama dengan menggunakan Index‑nya.
- Telusuri setiap bentuk di dalam slide pertama.
- Periksa apakah bentuk tersebut bertipe [SmartArt] dan lakukan typecast pada bentuk yang dipilih ke SmartArt jika memang SmartArt.
- Periksa bentuk SmartArt dengan LayoutType tertentu dan lakukan apa yang diperlukan setelahnya.
$pres = new Presentation("AccessSmartArtShape.pptx");
try {
# Jelajahi setiap bentuk di dalam slide pertama
foreach($pres->getSlides()->get_Item(0)->getShapes() as $shape) {
# Periksa apakah bentuk bertipe SmartArt
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Lakukan typecast bentuk ke SmartArtEx
$smart = $shape;
# Memeriksa Tata Letak SmartArt
if ($smart->getLayout() == SmartArtLayoutType::BasicBlockList) {
echo("Do some thing here....");
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Mengubah Gaya Bentuk SmartArt
Dalam contoh ini, kita akan belajar mengubah gaya cepat untuk setiap bentuk SmartArt.
- Buat sebuah instance kelas Presentation dan muat presentasi yang berisi Bentuk SmartArt.
- Dapatkan referensi slide pertama dengan menggunakan Index‑nya.
- Telusuri setiap bentuk di dalam slide pertama.
- Periksa apakah bentuk tersebut bertipe [SmartArt] dan lakukan typecast pada bentuk yang dipilih ke SmartArt jika memang SmartArt.
- Temukan bentuk SmartArt dengan Style tertentu.
- Tetapkan Style baru untuk bentuk SmartArt.
- Simpan Presentasi.
# Membuat Instance Kelas Presentation
$pres = new Presentation("SimpleSmartArt.pptx");
try {
# Dapatkan slide pertama
$slide = $pres->getSlides()->get_Item(0);
# Jelajahi setiap bentuk di dalam slide pertama
foreach($slide->getShapes() as $shape) {
# Periksa apakah bentuk bertipe SmartArt
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Lakukan typecast bentuk ke SmartArtEx
$smart = $shape;
# Memeriksa gaya SmartArt
if ($smart->getQuickStyle() == SmartArtQuickStyleType::SimpleFill) {
# Mengubah Gaya SmartArt
$smart->setQuickStyle(SmartArtQuickStyleType::Cartoon);
}
}
}
# Menyimpan presentasi
$pres->save("ChangeSmartArtStyle.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
![]() |
|---|
| Gambar: Bentuk SmartArt dengan Style yang diubah |
Mengubah Gaya Warna Bentuk SmartArt
Dalam contoh ini, kita akan belajar mengubah gaya warna untuk setiap bentuk SmartArt. Pada contoh kode berikut, kita akan mengakses bentuk SmartArt dengan gaya warna tertentu dan mengubah gayanya.
- Buat sebuah instance kelas Presentation dan muat presentasi yang berisi Bentuk SmartArt.
- Dapatkan referensi slide pertama dengan menggunakan Index‑nya.
- Telusuri setiap bentuk di dalam slide pertama.
- Periksa apakah bentuk tersebut bertipe [SmartArt] dan lakukan typecast pada bentuk yang dipilih ke SmartArt jika memang SmartArt.
- Temukan bentuk SmartArt dengan Color Style tertentu.
- Tetapkan Color Style baru untuk bentuk SmartArt.
- Simpan Presentasi.
# Membuat Instance Kelas Presentation
$pres = new Presentation("SimpleSmartArt.pptx");
try {
# Dapatkan slide pertama
$slide = $pres->getSlides()->get_Item(0);
# Jelajahi setiap bentuk di dalam slide pertama
foreach($slide->getShapes() as $shape) {
# Periksa apakah bentuk bertipe SmartArt
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Lakukan typecast bentuk ke SmartArtEx
$smart = $shape;
# Memeriksa tipe warna SmartArt
if ($smart->getColorStyle() == SmartArtColorType::ColoredFillAccent1) {
# Mengubah tipe warna SmartArt
$smart->setColorStyle(SmartArtColorType::ColorfulAccentColors);
}
}
}
# Menyimpan presentasi
$pres->save("ChangeSmartArtColorStyle.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
![]() |
|---|
| Gambar: Bentuk SmartArt dengan Color Style yang diubah |
FAQ
Apakah saya dapat menganimasikan SmartArt sebagai satu objek?
Ya. SmartArt adalah sebuah bentuk, sehingga Anda dapat menerapkan animasi standar melalui API animasi (masuk, keluar, penekanan, jalur gerak) seperti pada bentuk lainnya.
Bagaimana saya dapat menemukan SmartArt tertentu pada slide jika saya tidak mengetahui ID internalnya?
Tetapkan dan gunakan Teks Alternatif (AltText) kemudian cari bentuk berdasarkan nilai tersebut—ini merupakan cara yang disarankan untuk menemukan bentuk target.
Apakah saya dapat mengelompokkan SmartArt dengan bentuk lain?
Ya. Anda dapat mengelompokkan SmartArt dengan bentuk lain (gambar, tabel, dll.) dan kemudian memanipulasi grup.
Bagaimana cara mendapatkan gambar SmartArt tertentu (misalnya, untuk pratinjau atau laporan)?
Ekspor thumbnail/gambar bentuk; pustaka dapat merender bentuk individual ke file raster (PNG/JPG/TIFF).
Apakah tampilan SmartArt akan tetap terjaga ketika mengonversi seluruh presentasi ke PDF?
Ya. Mesin render menargetkan fidelitas tinggi untuk ekspor PDF, dengan berbagai opsi kualitas dan kompatibilitas.

