Kelola Master Slide Presentasi di Android
Gambaran Umum
Sebuah master slide mendefinisikan pengaturan desain bersama untuk sekumpulan slide. Ia dapat berisi bentuk umum, logo, latar belakang, gaya teks, pengaturan tema, dan pengaturan footer. Di PowerPoint, mengedit master slide merupakan cara biasa untuk menjaga konsistensi presentasi tanpa harus mengulangi pemformatan yang sama pada setiap slide.
Aspose.Slides for Android via Java mendukung model yang sama. Sebuah presentasi dapat berisi satu atau lebih master slide, dan setiap master slide dapat berisi beberapa layout slide. Slide normal biasanya tidak merujuk langsung ke master slide. Sebagai gantinya, slide normal menggunakan layout slide, dan layout slide tersebut milik sebuah master slide.
Hierarki tersebut adalah:
- Master slide – mendefinisikan desain dan tema bersama.
- Slide tata letak – mendefinisikan susunan placeholder tertentu dan pemformatan level tata letak.
- Slide normal – berisi konten presentasi aktual dan menggunakan satu slide tata letak.

Di Aspose.Slides, master slide direpresentasikan oleh antarmuka IMasterSlide. Semua master slide dalam sebuah presentasi tersedia melalui koleksi Presentation.getMasters yang mengimplementasikan IMasterSlideCollection. Untuk seluruh permukaan API Android via Java, lihat referensi API com.aspose.slides.
Inheritance
Ketika properti yang sama didefinisikan pada lebih dari satu tingkat, tingkat yang lebih spesifik yang akan dipakai. Misalnya, jika sebuah master slide dan sebuah slide tata letak keduanya mendefinisikan latar belakang, slide yang berbasis tata letak tersebut akan menggunakan latar belakang tata letak. Untuk informasi lebih lanjut tentang slide tata letak, lihat Apply or Change Slide Layouts.Akses Master Slide
Di PowerPoint, Anda dapat membuka tampilan Master Slide lewat View > Slide Master.

Di Aspose.Slides, gunakan koleksi getMasters() untuk mengakses master slide:
Presentation presentation = new Presentation("presentation.pptx");
try {
IMasterSlide firstMasterSlide = presentation.getMasters().get_Item(0);
int masterSlideCount = presentation.getMasters().size();
int firstMasterLayoutSlideCount = firstMasterSlide.getLayoutSlides().size();
System.out.println("Master slides: " + masterSlideCount);
System.out.println("Layouts in the first master: " + firstMasterLayoutSlideCount);
} finally {
presentation.dispose();
}
Anda juga dapat memperoleh master slide yang digunakan oleh slide normal melalui tata letaknya:
Presentation presentation = new Presentation("presentation.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
ILayoutSlide layoutSlide = slide.getLayoutSlide();
IMasterSlide masterSlide = layoutSlide.getMasterSlide();
String masterSlideName = masterSlide.getName();
System.out.println(masterSlideName);
} finally {
presentation.dispose();
}
Apa yang Dimiliki oleh Master Slide
Sebuah master slide adalah objek mirip slide. Ia mengimplementasikan IBaseSlide, sehingga mengekspos banyak properti slide yang sama yang digunakan oleh slide normal dan slide tata letak.
Anggota master slide yang sering digunakan meliputi:
| Anggota | Tujuan |
|---|---|
getBackground() |
Menetapkan latar belakang slide pada level master. |
getShapes() |
Menyimpan bentuk‑bentuk yang ditempatkan pada master, seperti logo, bingkai gambar, dan teks bersama. |
getLayoutSlides() |
Menyimpan slide tata letak yang termasuk dalam master. |
getThemeManager() |
Menyediakan akses ke API tema master. |
getHeaderFooterManager() |
Mengontrol header, footer, tanggal, dan nomor slide untuk master dan tata letak turunannya. |
getDependingSlides() |
Mengembalikan slide normal yang bergantung pada master melalui tata letaknya. |
Menambahkan Gambar ke Master Slide
Saat Anda menambahkan gambar ke master slide, gambar tersebut muncul pada slide yang menggunakan tata letak dari master itu. Ini berguna untuk logo, watermark, pita dekoratif, dan elemen visual berulang lainnya.
Contoh berikut menambahkan logo ke master slide pertama:
Presentation presentation = new Presentation("presentation.pptx");
try {
IMasterSlide masterSlide = presentation.getMasters().get_Item(0);
IImage logo = Images.fromFile("logo.png");
try {
IPPImage logoImage = presentation.getImages().addImage(logo);
masterSlide.getShapes().addPictureFrame(
ShapeType.Rectangle,
20,
20,
80,
80,
logoImage);
} finally {
logo.dispose();
}
presentation.save("presentation-with-logo.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Untuk informasi lebih lanjut tentang bingkai gambar, lihat Picture Frame.
Bekerja dengan Placeholder
Placeholder biasanya didefinisikan pada slide tata letak. Master slide menyediakan gaya dan tema bersama yang diwarisi oleh tata letak tersebut, sementara masing‑masing tata letak menentukan placeholder apa yang tersedia dan di mana letaknya.
Di PowerPoint, perintah placeholder tersedia di tampilan Master Slide.

Untuk menambahkan placeholder baru dengan Aspose.Slides, kerjakan slide tata letak yang termasuk dalam master:
Presentation presentation = new Presentation("presentation.pptx");
try {
IMasterSlide masterSlide = presentation.getMasters().get_Item(0);
ILayoutSlide blankLayoutSlide = masterSlide.getLayoutSlides().getByType(SlideLayoutType.Blank);
if (blankLayoutSlide == null) {
blankLayoutSlide = masterSlide.getLayoutSlides().add(SlideLayoutType.Blank, "Blank");
}
blankLayoutSlide.getPlaceholderManager().addTextPlaceholder(60, 120, 600, 80);
presentation.getSlides().addEmptySlide(blankLayoutSlide);
presentation.save("presentation-with-placeholder.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Anda juga dapat memformat bentuk placeholder yang sudah ada pada master slide. Contoh berikut menemukan placeholder judul dan menerapkan isian gradien linier:
Presentation presentation = new Presentation("presentation.pptx");
try {
IMasterSlide masterSlide = presentation.getMasters().get_Item(0);
IAutoShape titlePlaceholder = null;
for (IShape shape : masterSlide.getShapes()) {
if (shape instanceof IAutoShape) {
IAutoShape autoShape = (IAutoShape) shape;
if (autoShape.getPlaceholder() != null &&
autoShape.getPlaceholder().getType() == PlaceholderType.Title) {
titlePlaceholder = autoShape;
break;
}
}
}
if (titlePlaceholder != null) {
int redGradientColor = Color.valueOf(255, 0, 0).toArgb();
int purpleGradientColor = Color.valueOf(128, 0, 128).toArgb();
titlePlaceholder.getFillFormat().setFillType(FillType.Gradient);
titlePlaceholder.getFillFormat().getGradientFormat().setGradientShape(GradientShape.Linear);
titlePlaceholder.getFillFormat().getGradientFormat().getGradientStops().add(0.0f, redGradientColor);
titlePlaceholder.getFillFormat().getGradientFormat().getGradientStops().add(1.0f, purpleGradientColor);
}
presentation.save("presentation-title-style.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}

Untuk opsi pemformatan placeholder dan teks lebih lanjut, lihat Set Prompt Text in Placeholder dan Text Formatting.
Mengubah Latar Belakang Master Slide
Latar belakang master diwarisi oleh tata letak dan slide yang tidak menimpanya. Contoh berikut menetapkan warna latar belakang padat untuk master slide pertama:
Presentation presentation = new Presentation("presentation.pptx");
try {
IMasterSlide masterSlide = presentation.getMasters().get_Item(0);
int masterBackgroundColor = Color.GREEN;
masterSlide.getBackground().setType(BackgroundType.OwnBackground);
masterSlide.getBackground().getFillFormat().setFillType(FillType.Solid);
masterSlide.getBackground().getFillFormat().getSolidFillColor().setColor(masterBackgroundColor);
presentation.save("presentation-master-background.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Untuk topik terkait, lihat Presentation Background dan Presentation Theme.
Menggandakan Master Slide ke Presentasi Lain
Gunakan IMasterSlideCollection.addClone untuk menyalin master slide ke presentasi lain. Master yang disalin kemudian dapat dipakai oleh tata letak dan slide di presentasi tujuan.
Presentation sourcePresentation = new Presentation("source.pptx");
Presentation destinationPresentation = new Presentation("destination.pptx");
try {
IMasterSlide sourceMasterSlide = sourcePresentation.getMasters().get_Item(0);
IMasterSlide clonedMasterSlide = destinationPresentation.getMasters().addClone(sourceMasterSlide);
destinationPresentation.save("destination-with-master.pptx", SaveFormat.Pptx);
} finally {
sourcePresentation.dispose();
destinationPresentation.dispose();
}
Jika Anda perlu menggandakan slide normal bersama masternya, lihat Clone Slides.
Menambahkan Beberapa Master Slide
Sebuah presentasi dapat berisi banyak master slide. Ini berguna ketika bagian‑bagian berbeda memerlukan branding, struktur halaman, atau pengaturan tema yang berbeda.

Contoh berikut menggandakan master default, memberi clone latar belakang yang berbeda, membuat tata letak di bawah master yang digandakan, dan menambahkan slide baru berdasarkan tata letak tersebut:
Presentation presentation = new Presentation("presentation.pptx");
try {
IMasterSlide defaultMasterSlide = presentation.getMasters().get_Item(0);
IMasterSlide sectionMasterSlide = presentation.getMasters().addClone(defaultMasterSlide);
int sectionMasterBackgroundColor = Color.GRAY;
sectionMasterSlide.getBackground().setType(BackgroundType.OwnBackground);
sectionMasterSlide.getBackground().getFillFormat().setFillType(FillType.Solid);
sectionMasterSlide.getBackground().getFillFormat().getSolidFillColor().setColor(sectionMasterBackgroundColor);
ILayoutSlide sourceBlankLayout = defaultMasterSlide.getLayoutSlides().getByType(SlideLayoutType.Blank);
if (sourceBlankLayout == null) {
sourceBlankLayout = defaultMasterSlide.getLayoutSlides().get_Item(0);
}
ILayoutSlide sectionBlankLayout = sectionMasterSlide.getLayoutSlides().addClone(sourceBlankLayout);
presentation.getSlides().addEmptySlide(sectionBlankLayout);
presentation.save("presentation-with-multiple-masters.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Membandingkan Master Slide
Master slide dapat dibandingkan dengan metode equals yang diwarisi dari IBaseSlide. Perbandingan memeriksa struktur dan konten statis, seperti bentuk, teks, pemformatan, animasi, dan pengaturan slide lainnya. Ia tidak membandingkan pengenal unik, seperti ID slide, atau nilai placeholder dinamis, seperti tanggal saat ini.
Presentation firstPresentation = new Presentation("first.pptx");
Presentation secondPresentation = new Presentation("second.pptx");
try {
int firstPresentationMasterCount = firstPresentation.getMasters().size();
int secondPresentationMasterCount = secondPresentation.getMasters().size();
for (int firstMasterIndex = 0; firstMasterIndex < firstPresentationMasterCount; firstMasterIndex++) {
for (int secondMasterIndex = 0; secondMasterIndex < secondPresentationMasterCount; secondMasterIndex++) {
IMasterSlide firstMasterSlide = firstPresentation.getMasters().get_Item(firstMasterIndex);
IMasterSlide secondMasterSlide = secondPresentation.getMasters().get_Item(secondMasterIndex);
boolean areMasterSlidesEqual = firstMasterSlide.equals(secondMasterSlide);
if (areMasterSlidesEqual) {
System.out.printf(
"first.pptx master #%d equals second.pptx master #%d%n",
firstMasterIndex,
secondMasterIndex);
}
}
}
} finally {
firstPresentation.dispose();
secondPresentation.dispose();
}
Untuk informasi lebih lanjut, lihat Compare Presentation Slides.
Menetapkan Tampilan Master Slide sebagai Tampilan Default
Gunakan metode setLastView pada ViewProperties untuk mengontrol tampilan yang pertama kali dibuka PowerPoint. Contoh berikut membuka presentasi dalam tampilan Master Slide:
Presentation presentation = new Presentation("presentation.pptx");
try {
presentation.getViewProperties().setLastView(ViewType.SlideMasterView);
presentation.save("presentation-master-view.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Untuk pengaturan tampilan lainnya, lihat Save Presentation.
Menghapus Master Slide yang Tidak Digunakan
Presentasi kadang‑kadang berisi master slide yang tidak lagi dipakai oleh slide normal mana pun. Menghapus master yang tidak digunakan dapat mengurangi ukuran file dan menyederhanakan pemeliharaan templat.
Gunakan removeUnused untuk menghapus master yang tidak digunakan dari koleksi getMasters():
Presentation presentation = new Presentation("presentation.pptx");
try {
presentation.getMasters().removeUnused(true);
presentation.save("presentation-clean.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Anda juga dapat menggunakan metode low‑code Compress.removeUnusedMasterSlides :
Presentation presentation = new Presentation("presentation.pptx");
try {
Compress.removeUnusedMasterSlides(presentation);
presentation.save("presentation-clean.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
FAQ
Apa perbedaan antara master slide dan slide tata letak?
Master slide mendefinisikan pengaturan desain bersama seperti tema, latar belakang, bentuk umum, dan gaya teks. Slide tata letak termasuk dalam master slide dan mendefinisikan susunan placeholder tertentu. Slide normal menggunakan slide tata letak, sehingga ia mewarisi dari tata letak serta master.
Apakah satu presentasi dapat berisi beberapa master slide?
Ya. Sebuah presentasi dapat berisi beberapa master slide. Gunakan banyak master ketika bagian‑bagian berbeda memerlukan sistem visual atau branding yang berbeda.
Haruskah saya menambahkan placeholder ke master slide atau ke slide tata letak?
Dalam kebanyakan kasus, tambahkan placeholder ke slide tata letak. Letakkan elemen visual bersama dan pemformatan bersama pada master slide, kemudian letakkan placeholder konten pada tata letak yang akan dipakai slide normal.
Bisakah saya menghapus master slide yang masih digunakan?
Tidak. Master slide yang memiliki slide turunan tidak dapat dihapus secara langsung dengan aman. Pindahkan terlebih dahulu slide‑slide tersebut ke tata letak di bawah master lain, atau gunakan metode pembersihan master yang tidak terpakai yang hanya menghapus master yang tidak digunakan.