Kelola Header dan Footer Presentasi di Python melalui Java

Gambaran Umum

PowerPoint menggunakan placeholder header dan footer yang berbeda tergantung pada jenis halaman. Aspose.Slides untuk Python melalui Java memungkinkan Anda mengontrol teks dan visibilitas placeholder tersebut melalui kelas manajer header/footer.

Placeholder yang tersedia tergantung pada lingkup:

Lingkup Header Footer Tanggal/waktu Nomor slide/halaman
Slide reguler Tidak Ya Ya Ya
Notes master Ya Ya Ya Ya
Notes slide Ya Ya Ya Ya
Handout master Ya Ya Ya Ya

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

Lingkup perubahan tergantung pada manajer yang Anda gunakan. Kelas SlideHeaderFooterManager mengontrol satu slide reguler. Kelas NotesSlideHeaderFooterManager mengontrol satu slide catatan. Manajer master dan layout juga dapat menyebarkan pengaturan ke slide yang bergantung, sementara kelas MasterHandoutSlideHeaderFooterManager mengontrol handout master.

Untuk slide reguler, alur kerja dasar adalah mengakses manajer header/footer setiap slide, mengatur teks footer dan tanggal/waktu, mengaktifkan placeholder yang diperlukan, dan menyimpan presentasi. Nomor slide dihasilkan oleh presentasi, sehingga Anda hanya perlu mengontrol visibilitasnya.

Gunakan setFooterText dan setDateTimeText untuk mengatur teks, serta gunakan 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:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat

presentation = Presentation("presentation.pptx")
try:
    for slide in presentation.getSlides():
        header_footer_manager = slide.getHeaderFooterManager()

        header_footer_manager.setFooterText("Company Confidential")
        header_footer_manager.setFooterVisibility(True)

        header_footer_manager.setDateTimeText("Date and time text")
        header_footer_manager.setDateTimeVisibility(True)

        header_footer_manager.setSlideNumberVisibility(True)

    presentation.save("presentation_with_slide_footers.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

Jika Anda perlu memperbarui hanya satu slide, akses slide tersebut langsung melalui metode getSlides alih-alih mengulang seluruh koleksi.

Notes master mendefinisikan format umum dan perilaku placeholder untuk halaman catatan. Gunakan kelas MasterNotesSlideHeaderFooterManager ketika Anda ingin mengubah hanya notes master itu sendiri.

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

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat

presentation = Presentation("presentation.pptx")
try:
    master_notes_slide = presentation.getMasterNotesSlideManager().getMasterNotesSlide()

    if master_notes_slide is not None:
        header_footer_manager = master_notes_slide.getHeaderFooterManager()

        header_footer_manager.setHeaderText("Notes header")
        header_footer_manager.setHeaderVisibility(True)

        header_footer_manager.setFooterText("Notes footer")
        header_footer_manager.setFooterVisibility(True)

        header_footer_manager.setDateTimeText("Date and time text")
        header_footer_manager.setDateTimeVisibility(True)

        header_footer_manager.setSlideNumberVisibility(True)

    presentation.save("presentation_with_notes_master_footers.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

Metode getMasterNotesSlide mengembalikan None ketika presentasi tidak berisi notes master.

Menerapkan Pengaturan Notes Master ke Catatan Slide Anak

Notes master dapat menerapkan pengaturan header dan footer ke dirinya sendiri dan ke semua catatan slide 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 notes master dan semua header anak. Metode setara tersedia untuk footer, tanggal/waktu, dan nomor slide.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat

presentation = Presentation("presentation.pptx")
try:
    master_notes_slide = presentation.getMasterNotesSlideManager().getMasterNotesSlide()

    if master_notes_slide is not None:
        header_footer_manager = master_notes_slide.getHeaderFooterManager()

        header_footer_manager.setHeaderAndChildHeadersText("Notes header")
        header_footer_manager.setHeaderAndChildHeadersVisibility(True)

        header_footer_manager.setFooterAndChildFootersText("Notes footer")
        header_footer_manager.setFooterAndChildFootersVisibility(True)

        header_footer_manager.setDateTimeAndChildDateTimesText("Date and time text")
        header_footer_manager.setDateTimeAndChildDateTimesVisibility(True)

        header_footer_manager.setSlideNumberAndChildSlideNumbersVisibility(True)

    presentation.save("presentation_with_child_notes_footers.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

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

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

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

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat

presentation = Presentation("presentation.pptx")
try:
    slide = presentation.getSlides().get_Item(0)
    notes_slide = slide.getNotesSlideManager().addNotesSlide()
    header_footer_manager = notes_slide.getHeaderFooterManager()

    header_footer_manager.setHeaderText("Header for the first notes page")
    header_footer_manager.setHeaderVisibility(True)

    header_footer_manager.setFooterText("Footer for the first notes page")
    header_footer_manager.setFooterVisibility(True)

    header_footer_manager.setDateTimeText("Date and time text")
    header_footer_manager.setDateTimeVisibility(True)

    header_footer_manager.setSlideNumberVisibility(True)

    presentation.save("presentation_with_custom_notes_footers.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

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

Halaman handout menggunakan handout master untuk placeholder header, footer, tanggal/waktu, dan nomor halaman mereka. Berbeda dengan halaman catatan, pengaturan handout dikelola melalui handout master bukan melalui slide handout individual.

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

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat

presentation = Presentation("presentation.pptx")
try:
    master_handout_slide = presentation.getMasterHandoutSlideManager().getMasterHandoutSlide()

    if master_handout_slide is None:
        master_handout_slide = presentation.getMasterHandoutSlideManager().setDefaultMasterHandoutSlide()

    if master_handout_slide is not None:
        header_footer_manager = master_handout_slide.getHeaderFooterManager()

        header_footer_manager.setHeaderText("Handout header")
        header_footer_manager.setHeaderVisibility(True)

        header_footer_manager.setFooterText("Handout footer")
        header_footer_manager.setFooterVisibility(True)

        header_footer_manager.setDateTimeText("Date and time text")
        header_footer_manager.setDateTimeVisibility(True)

        header_footer_manager.setSlideNumberVisibility(True)

    presentation.save("presentation_with_handout_footers.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

Memahami Lingkup dan Pewarisan

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

Gunakan propagasi dari master atau layout ketika pengaturan yang sama harus berlaku sepanjang hierarki tersebut. Gunakan manajer slide individual atau notes-slide 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 handout.

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

Gunakan manajer header/footer yang bersangkutan untuk memeriksa visibilitasnya dan mengaktifkannya bila diperlukan. Sebagai contoh, isFooterVisible melaporkan apakah placeholder footer hadir, dan setFooterVisibility mengubah visibilitasnya.

Bagaimana cara memulai penomoran slide dari nilai selain 1?

Panggil metode setFirstSlideNumber pada presentasi. Placeholder nomor slide kemudian akan 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 lainnya dalam format output. Penampilannya tergantung pada jenis halaman yang diekspor dan pengaturan visibilitas placeholder yang bersangkutan.