Správa záhlaví a zápatí prezentace v Pythonu přes Java

Přehled

PowerPoint používá různé zástupné objekty záhlaví a zápatí v závislosti na typu stránky. Aspose.Slides pro Python prostřednictvím Javy vám umožňuje řídit text a viditelnost těchto zástupných objektů pomocí tříd správce záhlaví/zápatí.

Dostupné zástupné objekty závisí na rozsahu:

Rozsah Záhlaví Zápatí Datum/čas Číslo snímku/stránky
Standardní snímek Ne Ano Ano Ano
Master poznámek Ano Ano Ano Ano
Snímek poznámek Ano Ano Ano Ano
Master výtisků Ano Ano Ano Ano

Standardní snímek prezentace nemá zástupný objekt záhlaví. Záhlaví jsou k dispozici na stránkách poznámek a výtiscích. Pro standardní snímky použijte místo toho zástupné objekty zápatí, datum/čas a číslo snímku.

Rozsah změny závisí na použitém správci. Třída SlideHeaderFooterManager řídí jeden standardní snímek. Třída NotesSlideHeaderFooterManager řídí jeden snímek poznámek. Správci masteru a rozložení mohou také šířit nastavení na závislé snímky, zatímco třída MasterHandoutSlideHeaderFooterManager řídí master výtisků.

Nastavení zápatí, data/času a čísel snímků na standardních snímcích

Pro standardní snímky je základní postup získat správce záhlaví/zápatí každého snímku, nastavit text zápatí a data/času, povolit požadované zástupné objekty a uložit prezentaci. Čísla snímků jsou generována prezentací, takže stačí řídit pouze jejich viditelnost.

Použijte setFooterText a setDateTimeText, abyste nastavili text, a použijte setFooterVisibility, setDateTimeVisibility a setSlideNumberVisibility, abyste zobrazili odpovídající zástupné objekty.

Následující komplexní příklad aplikuje stejný text zápatí, datum/čas a viditelnost číslování snímků na všechny standardní snímky:

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()

Pokud potřebujete aktualizovat pouze jeden snímek, přistupte k tomuto snímku přímo pomocí metody getSlides, místo iterace přes celou kolekci.

Nastavení záhlaví a zápatí v masteru poznámek

Master poznámek určuje společné formátování a chování zástupných objektů pro stránky poznámek. Použijte třídu MasterNotesSlideHeaderFooterManager, pokud chcete změnit pouze samotný master poznámek.

Následující příklad nastaví záhlaví, zápatí a text datum/čas v masteru poznámek a zobrazí všechny podporované zástupné objekty v tomto masteru:

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()

Metoda getMasterNotesSlide vrací None, pokud prezentace neobsahuje master poznámek.

Použití nastavení masteru poznámek na podřízené snímky poznámek

Master poznámek může aplikovat nastavení záhlaví a zápatí na sebe samotného i na všechny závislé snímky poznámek. Použijte speciální metody šíření v MasterNotesSlideHeaderFooterManager, pokud mají být stejná nastavení aplikována napříč hierarchií poznámek.

Například setHeaderAndChildHeadersText a setHeaderAndChildHeadersVisibility aktualizují záhlaví masteru poznámek a všech podřízených záhlaví. Ekvivalentní metody jsou k dispozici pro zápatí, datum/čas a čísla snímků.

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()

Šířící metody použité výše jsou setFooterAndChildFootersText, setFooterAndChildFootersVisibility, setDateTimeAndChildDateTimesText, setDateTimeAndChildDateTimesVisibility a setSlideNumberAndChildSlideNumbersVisibility.

Nastavení záhlaví a zápatí na jednotlivém snímku poznámek

Snímek poznámek patří ke konkrétnímu standardnímu snímku. Použijte jeho třídu NotesSlideHeaderFooterManager, pokud chcete přizpůsobit pouze tuto stránku poznámek.

Metoda addNotesSlide vrací snímek poznámek pro aktuální snímek a vytvoří jej, pokud ještě neexistuje. Následující příklad konfiguruje stránku poznámek spojenou s prvním snímkem prezentace:

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()

Pokud nejprve rozšíříte nastavení z masteru poznámek a pak změníte konkrétní snímek poznámek, pozdější nastavení na úrovni snímku vám umožní přizpůsobit tuto stránku poznámek nezávisle.

Nastavení záhlaví a zápatí v masteru výtisků

Stránky výtisků používají master výtisků pro své zástupné objekty záhlaví, zápatí, datum/čas a číslo stránky. Na rozdíl od stránek poznámek jsou nastavení výtisků spravována přes master výtisků, nikoli přes jednotlivé snímky výtisků.

Použijte metodu getMasterHandoutSlide pro přístup k masteru výtisků. Pokud není přítomen, zavolejte setDefaultMasterHandoutSlide, abyste vytvořili výchozí master výtisků.

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()

Pochopení rozsahu a dědičnosti

Vyberte správce záhlaví/zápatí, který odpovídá rozsahu, který chcete změnit:

Použijte šíření z masteru nebo rozložení, pokud má stejné nastavení platit v celé jeho hierarchii. Použijte správce jednotlivého snímku nebo snímku poznámek, pokud potřebujete lokální nastavení pro jednu stránku.

Často kladené otázky

Mohu přidat záhlaví na standardní snímek?

Ne. PowerPoint nedefinuje zástupný objekt záhlaví pro standardní snímky. Na standardních snímcích použijte zástupné objekty zápatí, datum/čas a číslo snímku. Zástupné objekty záhlaví jsou k dispozici na stránkách poznámek a výtiscích.

Co když zástupný objekt zápatí, datum/čas nebo číslo snímku není viditelný?

Použijte odpovídající správce záhlaví/zápatí k ověření jeho viditelnosti a povolte jej podle potřeby. Například isFooterVisible uvádí, zda je zástupný objekt zápatí přítomen, a setFooterVisibility mění jeho viditelnost.

Jak mohu zahájit číslování snímků od hodnoty jiných než 1?

Zavolejte metodu setFirstSlideNumber prezentace. Zástupné objekty číslování snímků pak použijí aktualizovanou posloupnost číslování.

Co se stane se záhlavím a zápatím při exportu do PDF, obrázků nebo HTML?

Viditelné prvky záhlaví a zápatí jsou vykresleny spolu se zbytkem obsahu prezentace ve výstupním formátu. Jejich vzhled závisí na typu exportované stránky a na nastavení viditelnosti odpovídajících zástupných objektů.