Kelola Header dan Footer Presentasi dalam PHP

Ikhtisar

PowerPoint menggunakan placeholder header dan footer yang berbeda tergantung pada jenis halaman. Aspose.Slides untuk PHP via Java memungkinkan Anda mengontrol teks dan visibilitas placeholder ini melalui kelas pengelola header/footer.

Placeholder yang tersedia bergantung pada ruang lingkup:

Ruang lingkup Header Footer Tanggal/waktu Nomor slide/halaman
Slide reguler Tidak Ya Ya Ya
Master catatan Ya Ya Ya Ya
Slide catatan Ya Ya Ya Ya
Master lembar kerja Ya Ya Ya Ya

Sebuah slide presentasi reguler tidak memiliki placeholder header. Header tersedia pada halaman catatan dan lembar kerja. Untuk slide reguler, gunakan placeholder footer, tanggal/waktu, dan nomor slide sebagai gantinya.

Ruang lingkup perubahan tergantung pada pengelola yang Anda gunakan. Kelas SlideHeaderFooterManager mengontrol satu slide reguler. Kelas NotesSlideHeaderFooterManager mengontrol satu slide catatan. Pengelola master dan tata letak juga dapat menyebarkan pengaturan ke slide yang bergantung, sementara kelas MasterHandoutSlideHeaderFooterManager mengontrol master lembar kerja.

Untuk slide reguler, alur kerja dasar adalah mengakses pengelola header/footer masing‑masing slide, menetapkan teks footer dan tanggal/waktu, mengaktifkan placeholder yang diperlukan, dan menyimpan presentasi. Nomor slide dihasilkan oleh presentasi, jadi Anda hanya perlu mengontrol visibilitasnya.

Gunakan setFooterText dan setDateTimeText untuk menetapkan teks, serta setFooterVisibility, setDateTimeVisibility, dan setSlideNumberVisibility untuk menampilkan placeholder yang sesuai.

Contoh end‑to‑end berikut menerapkan footer, teks tanggal/waktu, dan visibilitas nomor slide yang sama pada semua slide reguler:

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$presentation = new Presentation("presentation.pptx");
try {
    foreach ($presentation->getSlides() as $slide) {
        $headerFooterManager = $slide->getHeaderFooterManager();

        $headerFooterManager->setFooterText("Company Confidential");
        $headerFooterManager->setFooterVisibility(true);

        $headerFooterManager->setDateTimeText("Date and time text");
        $headerFooterManager->setDateTimeVisibility(true);

        $headerFooterManager->setSlideNumberVisibility(true);
    }

    $presentation->save("presentation_with_slide_footers.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

Jika Anda hanya perlu memperbarui satu slide, akses slide tersebut secara langsung melalui metode getSlides alih‑alih mengiterasi seluruh koleksi.

Master catatan menentukan pemformatan umum dan perilaku placeholder untuk halaman catatan. Gunakan kelas MasterNotesSlideHeaderFooterManager ketika Anda ingin mengubah hanya master catatan itu sendiri.

Contoh berikut menetapkan header, footer, dan teks tanggal/waktu pada master catatan serta membuat semua placeholder yang didukung terlihat pada master tersebut:

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$presentation = new Presentation("presentation.pptx");
try {
    $masterNotesSlide = $presentation->getMasterNotesSlideManager()->getMasterNotesSlide();

    if (!java_is_null($masterNotesSlide)) {
        $headerFooterManager = $masterNotesSlide->getHeaderFooterManager();

        $headerFooterManager->setHeaderText("Notes header");
        $headerFooterManager->setHeaderVisibility(true);

        $headerFooterManager->setFooterText("Notes footer");
        $headerFooterManager->setFooterVisibility(true);

        $headerFooterManager->setDateTimeText("Date and time text");
        $headerFooterManager->setDateTimeVisibility(true);

        $headerFooterManager->setSlideNumberVisibility(true);
    }

    $presentation->save("presentation_with_notes_master_footers.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

Metode getMasterNotesSlide mengembalikan null ketika presentasi tidak berisi master catatan.

Menerapkan Pengaturan Master Catatan ke Slide Catatan Anak

Master catatan dapat menerapkan pengaturan header dan footer pada dirinya sendiri dan semua slide catatan yang bergantung. Gunakan metode propagasi khusus pada MasterNotesSlideHeaderFooterManager ketika pengaturan yang sama harus diterapkan di seluruh hierarki catatan.

Sebagai contoh, setHeaderAndChildHeadersText dan setHeaderAndChildHeadersVisibility memperbarui header master catatan dan semua header anak. Metode setara tersedia untuk footer, tanggal/waktu, dan nomor slide.

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$presentation = new Presentation("presentation.pptx");
try {
    $masterNotesSlide = $presentation->getMasterNotesSlideManager()->getMasterNotesSlide();

    if (!java_is_null($masterNotesSlide)) {
        $headerFooterManager = $masterNotesSlide->getHeaderFooterManager();

        $headerFooterManager->setHeaderAndChildHeadersText("Notes header");
        $headerFooterManager->setHeaderAndChildHeadersVisibility(true);

        $headerFooterManager->setFooterAndChildFootersText("Notes footer");
        $headerFooterManager->setFooterAndChildFootersVisibility(true);

        $headerFooterManager->setDateTimeAndChildDateTimesText("Date and time text");
        $headerFooterManager->setDateTimeAndChildDateTimesVisibility(true);

        $headerFooterManager->setSlideNumberAndChildSlideNumbersVisibility(true);
    }

    $presentation->save("presentation_with_child_notes_footers.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

Metode propagasi yang digunakan di atas meliputi setFooterAndChildFootersText, setFooterAndChildFootersVisibility, setDateTimeAndChildDateTimesText, setDateTimeAndChildDateTimesVisibility, dan setSlideNumberAndChildSlideNumbersVisibility.

Sebuah slide catatan terkait dengan slide reguler tertentu. Gunakan kelas NotesSlideHeaderFooterManager ketika Anda ingin menyesuaikan hanya halaman catatan tersebut.

Metode addNotesSlide mengembalikan slide catatan untuk slide saat ini dan membuatnya jika belum ada. Contoh berikut mengonfigurasi halaman catatan yang terkait dengan slide presentasi pertama:

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$presentation = new Presentation("presentation.pptx");
try {
    $slide = $presentation->getSlides()->get_Item(0);
    $notesSlide = $slide->getNotesSlideManager()->addNotesSlide();
    $headerFooterManager = $notesSlide->getHeaderFooterManager();

    $headerFooterManager->setHeaderText("Header for the first notes page");
    $headerFooterManager->setHeaderVisibility(true);

    $headerFooterManager->setFooterText("Footer for the first notes page");
    $headerFooterManager->setFooterVisibility(true);

    $headerFooterManager->setDateTimeText("Date and time text");
    $headerFooterManager->setDateTimeVisibility(true);

    $headerFooterManager->setSlideNumberVisibility(true);

    $presentation->save("presentation_with_custom_notes_footers.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

Jika Anda pertama‑tama menyebarkan pengaturan dari master catatan kemudian mengubah slide catatan individual, pengaturan per‑slide selanjutnya memungkinkan Anda menyesuaikan halaman catatan tersebut secara independen.

Halaman lembar kerja menggunakan master lembar kerja untuk placeholder header, footer, tanggal/waktu, dan nomor halaman. Berbeda dengan halaman catatan, pengaturan lembar kerja dikelola melalui master lembar kerja, bukan melalui slide lembar kerja individu.

Gunakan metode getMasterHandoutSlide untuk mengakses master lembar kerja. Jika tidak ada, panggil setDefaultMasterHandoutSlide untuk membuat master lembar kerja default.

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$presentation = new Presentation("presentation.pptx");
try {
    $masterHandoutSlide = $presentation->getMasterHandoutSlideManager()->getMasterHandoutSlide();

    if (java_is_null($masterHandoutSlide)) {
        $masterHandoutSlide = $presentation->getMasterHandoutSlideManager()->setDefaultMasterHandoutSlide();
    }

    if (!java_is_null($masterHandoutSlide)) {
        $headerFooterManager = $masterHandoutSlide->getHeaderFooterManager();

        $headerFooterManager->setHeaderText("Handout header");
        $headerFooterManager->setHeaderVisibility(true);

        $headerFooterManager->setFooterText("Handout footer");
        $headerFooterManager->setFooterVisibility(true);

        $headerFooterManager->setDateTimeText("Date and time text");
        $headerFooterManager->setDateTimeVisibility(true);

        $headerFooterManager->setSlideNumberVisibility(true);
    }

    $presentation->save("presentation_with_handout_footers.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

Memahami Ruang Lingkup dan Pewarisan

Pilih pengelola header/footer yang sesuai dengan ruang lingkup yang ingin Anda ubah:

Gunakan propagasi dari master atau tata letak ketika pengaturan yang sama harus berlaku di seluruh hierarki. Gunakan pengelola slide individual atau slide‑catatan ketika Anda memerlukan pengaturan lokal untuk satu halaman.

FAQ

Apakah saya dapat menambahkan header pada slide reguler?

Tidak. PowerPoint tidak mendefinisikan placeholder header untuk slide reguler. Pada slide reguler, gunakan placeholder footer, tanggal/waktu, dan nomor slide. Placeholder header tersedia pada halaman catatan dan lembar kerja.

Bagaimana jika placeholder footer, tanggal/waktu, atau nomor slide tidak terlihat?

Gunakan pengelola header/footer yang bersangkutan untuk memeriksa visibilitasnya dan aktifkan bila diperlukan. Misalnya, isFooterVisible melaporkan apakah placeholder footer ada, dan setFooterVisibility mengubah visibilitasnya.

Bagaimana cara memulai penomoran slide dari nilai selain 1?

Panggil metode setFirstSlideNumber pada presentasi. Placeholder nomor slide kemudian menggunakan urutan penomoran yang diperbarui.

Apa yang terjadi pada header dan footer saat mengekspor ke PDF, gambar, atau HTML?

Elemen header dan footer yang terlihat dirender bersama konten presentasi lain dalam format output. Penampilannya tergantung pada jenis halaman yang diekspor dan pengaturan visibilitas placeholder yang bersangkutan.