Menerapkan atau Mengubah Tata Letak Slide di .NET

Ikhtisar

Tata letak slide mendefinisikan posisi dan pemformatan placeholder seperti judul, teks, gambar, diagram, dan tabel. Menerapkan tata letak memberi slide struktur yang konsisten sekaligus memungkinkan setiap slide memiliki kontennya masing‑ma​sil.

Tata letak yang paling umum meliputi:

  • Slide Judul: Memuat placeholder judul dan subjudul.
  • Judul dan Konten: Memuat placeholder judul dan placeholder konten serbaguna.
  • Kosong: Tidak memuat placeholder konten dan berguna bila setiap bentuk akan diposisikan secara manual.

Memahami Pewarisan Tata Letak

Sebuah presentasi memiliki tiga tingkat yang saling terkait:

  1. Sebuah master slide menentukan tema, pemformatan bersama, latar belakang, dan objek umum.
  2. Sebuah layout slide berada dalam sebuah master dan mendefinisikan susunan placeholder tertentu.
  3. Sebuah normal slide menggunakan satu tata letak dan menyimpan konten yang dimasukkan untuk slide tersebut.

Sebuah slide normal mewarisi tema dan pemformatan dari tata letaknya, dan tata letak mewarisi dari masternya. Nilai yang ditetapkan secara langsung pada slide normal akan menimpa nilai yang diwarisi pada tingkat tersebut. Ketika sebuah slide normal dibuat, bentuk placeholder‑nya dihasilkan dari tata letak yang dipilih, sementara konten yang dimasukkan ke dalam placeholder tersebut menjadi milik slide normal.

Tambahkan placeholder yang diperlukan ke sebuah tata letak sebelum membuat slide darinya. Menambahkan placeholder lain ke tata letak kemudian tidak secara otomatis menambah bentuk placeholder yang bersesuaian pada slide normal yang sudah ada.

Hubungan ini menghasilkan dua konsekuensi penting:

  • Mengubah pemformatan yang diwarisi atau geometri placeholder yang ada pada tata letak dapat memperbarui setiap slide yang bergantung padanya. Sebelum mengedit tata letak yang sudah dipakai, periksa slide‑slide yang tergantung dan tinjau hasil presentasi.
  • Tata letak yang masih digunakan oleh sebuah slide tidak dapat dihapus. Alihkan slide‑slide yang bergantung ke tata letak lain terlebih dahulu, atau hapus hanya tata letak yang tidak terpakai.

Untuk informasi lebih lanjut tentang tingkatan teratas hierarki ini, lihat Slide Master.

Pilih dan Terapkan Tata Letak Slide

Gunakan tipe tata letak ketika presentasi mengikuti definisi tata letak PowerPoint standar. Nama tata letak dapat diedit pengguna dan dapat dilokalisasi, sehingga pemilihan berbasis nama kurang dapat diandalkan kecuali Anda mengendalikan templat sumber.

Contoh berikut mencari Judul dan Konten pada master pertama. Jika tata letak tersebut tidak tersedia, secara sengaja akan beralih ke Kosong. Pemeriksaan null kedua diperlukan karena sebuah presentasi dapat berisi hanya tata letak khusus. Tata letak yang dipilih kemudian diterapkan ke slide normal pertama melalui properti ISlide.LayoutSlide.

using System;
using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("input.pptx");

var layoutSlides = presentation.Masters[0].LayoutSlides;
var targetLayout = layoutSlides.GetByType(SlideLayoutType.TitleAndObject) ?? layoutSlides.GetByType(SlideLayoutType.Blank);

if (targetLayout == null)
{
    throw new InvalidOperationException("The first master does not contain a suitable layout slide.");
}

presentation.Slides[0].LayoutSlide = targetLayout;
presentation.Save("output-with-new-layout.pptx", SaveFormat.Pptx);

Mengubah tata letak slide tidak menghapus bentuk biasa yang ditambahkan langsung ke slide. Namun, posisi placeholder, pemformatan yang diwarisi, dan korespondensi antara placeholder yang ada dengan tata letak baru dapat berubah, sehingga periksalah output ketika beralih antar tata letak yang secara substansial berbeda.

Tambahkan Tata Letak Slide

Pemilihan dan pembuatan adalah operasi terpisah. Contoh sebelumnya hanya memilih tata letak yang sudah ada; tidak membuat yang baru. Untuk membuat tata letak, panggil metode IMasterLayoutSlideCollection.Add pada koleksi tata letak master target.

Contoh berikut selalu menambahkan tata letak Judul dan Konten baru bernama Report Title and Content, kemudian menambahkan slide normal yang didasarkan padanya. Nama tata letak harus unik dalam koleksi.

using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("input.pptx");

var masterSlide = presentation.Masters[0];
var reportLayout = masterSlide.LayoutSlides.Add(SlideLayoutType.TitleAndObject, "Report Title and Content");
presentation.Slides.AddEmptySlide(reportLayout);

presentation.Save("output-with-report-layout.pptx", SaveFormat.Pptx);

Tambahkan tata letak hanya bila templat memang membutuhkan struktur yang dapat digunakan kembali. Jika tata letak yang sesuai sudah ada, pilih dan gunakan kembali daripada membuat duplikat.

Tambahkan Placeholder ke Tata Letak Slide

Properti ILayoutSlide.PlaceholderManager menyediakan ILayoutPlaceholderManager untuk menambahkan bentuk placeholder ke sebuah tata letak.

Placeholder PowerPoint Metode ILayoutPlaceholderManager
Content AddContentPlaceholder(float x, float y, float width, float height)
Content (Vertical) AddVerticalContentPlaceholder(float x, float y, float width, float height)
Text AddTextPlaceholder(float x, float y, float width, float height)
Text (Vertical) AddVerticalTextPlaceholder(float x, float y, float width, float height)
Picture AddPicturePlaceholder(float x, float y, float width, float height)
Chart AddChartPlaceholder(float x, float y, float width, float height)
Table AddTablePlaceholder(float x, float y, float width, float height)
SmartArt AddSmartArtPlaceholder(float x, float y, float width, float height)
Media AddMediaPlaceholder(float x, float y, float width, float height)
Online Image AddOnlineImagePlaceholder(float x, float y, float width, float height)

Contoh berikut memverifikasi bahwa tata letak Kosong ada, menambahkan empat placeholder padanya, lalu membuat slide normal yang menggunakan tata letak yang telah dimodifikasi. Urutannya sengaja: placeholder ditambahkan sebelum slide normal dibuat, sehingga Aspose.Slides dapat menghasilkan bentuk placeholder yang bersesuaian pada slide tersebut.

using System;
using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation();

var blankLayout = presentation.LayoutSlides.GetByType(SlideLayoutType.Blank);

if (blankLayout == null)
{
    throw new InvalidOperationException("The presentation does not contain a Blank layout slide.");
}

var placeholderManager = blankLayout.PlaceholderManager;
placeholderManager.AddContentPlaceholder(20, 20, 310, 270);
placeholderManager.AddVerticalTextPlaceholder(350, 20, 350, 270);
placeholderManager.AddChartPlaceholder(20, 310, 310, 180);
placeholderManager.AddTablePlaceholder(350, 310, 350, 180);

presentation.Slides.AddEmptySlide(blankLayout);
presentation.Save("output-with-placeholders.pptx", SaveFormat.Pptx);

Hasilnya:

Placeholder pada tata letak slide

Hapus Tata Letak Slide yang Tidak Digunakan

Gunakan metode Compress.RemoveUnusedLayoutSlides untuk menghapus tata letak yang tidak dirujuk oleh slide normal mana pun. Metode ini membiarkan tata letak yang masih dipakai tetap utuh.

using Aspose.Slides;
using Aspose.Slides.Export;
using Aspose.Slides.LowCode;

using var presentation = new Presentation("input.pptx");

Compress.RemoveUnusedLayoutSlides(presentation);
presentation.Save("output-without-unused-layouts.pptx", SaveFormat.Pptx);

Untuk menghapus satu tata letak tertentu, pertama gunakan properti HasDependingSlides atau metode GetDependingSlides. Alihkan semua slide yang bergantung sebelum memanggil ILayoutSlide.Remove. Mencoba menghapus tata letak yang masih dipakai akan menghasilkan PptxEditException.

Sebuah tata letak memiliki placeholder footer, nomor slide, dan tanggal‑waktu sendiri. Gunakan properti ILayoutSlide.HeaderFooterManager untuk mengontrol placeholder tersebut pada satu tata letak. Ini berguna ketika, misalnya, tata letak konten harus menampilkan footer tetapi tata letak judul tidak.

Contoh berikut memilih tata letak dengan aman dan membuat elemen footernya terlihat:

using System;
using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("input.pptx");

var layoutSlide = presentation.LayoutSlides.GetByType(SlideLayoutType.TitleAndObject) ?? presentation.LayoutSlides.GetByType(SlideLayoutType.Blank);

if (layoutSlide == null)
{
    throw new InvalidOperationException("The presentation does not contain a suitable layout slide.");
}

var headerFooterManager = layoutSlide.HeaderFooterManager;
headerFooterManager.SetFooterVisibility(true);
headerFooterManager.SetSlideNumberVisibility(true);
headerFooterManager.SetDateTimeVisibility(true);
headerFooterManager.SetFooterText("Footer text");
headerFooterManager.SetDateTimeText("Date and time text");

presentation.Save("output-with-layout-footers.pptx", SaveFormat.Pptx);

Untuk menerapkan pengaturan footer yang konsisten di seluruh hierarki master, gunakan properti IMasterSlide.HeaderFooterManager. Metode propagasi pada IMasterSlideHeaderFooterManager bekerja pada master serta tata letak dan slide normal yang bergantung; mereka tidak menargetkan satu slide normal saja.

using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("input.pptx");

var headerFooterManager = presentation.Masters[0].HeaderFooterManager;
headerFooterManager.SetFooterAndChildFootersVisibility(true);
headerFooterManager.SetSlideNumberAndChildSlideNumbersVisibility(true);
headerFooterManager.SetDateTimeAndChildDateTimesVisibility(true);
headerFooterManager.SetFooterAndChildFootersText("Footer text");
headerFooterManager.SetDateTimeAndChildDateTimesText("Date and time text");

presentation.Save("output-with-master-footers.pptx", SaveFormat.Pptx);

FAQ

Apa Perbedaan antara Master Slide dan Layout Slide?

Master slide menentukan tema presentasi dan pemformatan bersama. Layout slide merupakan bagian dari master dan menentukan satu susunan placeholder yang dapat digunakan kembali. Slide normal menggunakan tata letak tersebut dan menyimpan konten khusus slide.

Bisakah Saya Menyalin Layout Slide dari Satu Presentasi ke Presentasi Lain?

Ya. Tambahkan salinan ke koleksi tujuan dengan metode AddClone. Saat menyalin antar presentasi, periksa juga font, tema, gambar, dan sumber daya lain yang digunakan oleh layout sumber.

Apa yang Terjadi Jika Saya Memodifikasi Layout yang Sudah Digunakan?

Slide yang bergantung mewarisi perubahan layout kecuali mereka menimpa pemformatan atau objek secara lokal. Geometri placeholder dan styling yang diwarisi dapat berubah pada banyak slide sekaligus. Gunakan GetDependingSlides untuk mengidentifikasi slide yang terpengaruh sebelum mengedit layout.

Apa yang Terjadi Jika Saya Menghapus Layout yang Masih Digunakan?

Aspose.Slides akan melempar PptxEditException. Alihkan slide yang bergantung terlebih dahulu, atau gunakan RemoveUnusedLayoutSlides untuk menghapus hanya layout yang tidak direferensikan.