Gestionar encabezados y pies de página de la presentación en PHP

Visión general

PowerPoint utiliza diferentes marcadores de posición de encabezado y pie de página según el tipo de página. Aspose.Slides para PHP a través de Java le permite controlar el texto y la visibilidad de estos marcadores mediante clases de gestión de encabezados/pies de página.

Los marcadores de posición disponibles dependen del ámbito:

Ámbito Encabezado Pie de página Fecha/hora Número de diapositiva/página
Diapositiva normal No
Máster de notas
Diapositiva de notas
Máster de folletos

Una diapositiva normal de presentación no tiene un marcador de posición de encabezado. Los encabezados están disponibles en las páginas de notas y en los folletos. En diapositivas normales, utilice los marcadores de pie de página, fecha/hora y número de diapositiva.

El ámbito de un cambio depende del gestor que utilice. La clase SlideHeaderFooterManager controla una diapositiva normal. La clase NotesSlideHeaderFooterManager controla una diapositiva de notas. Los gestores de máster y de diseño también pueden propagar la configuración a las diapositivas dependientes, mientras que la clase MasterHandoutSlideHeaderFooterManager controla el máster de folleto.

Establecer pie de página, fecha/hora y números de diapositiva en diapositivas normales

Para diapositivas normales, el flujo de trabajo básico consiste en acceder al gestor de encabezado/pie de cada diapositiva, establecer el texto del pie de página y de la fecha/hora, habilitar los marcadores de posición requeridos y guardar la presentación. Los números de diapositiva los genera la presentación, por lo que solo necesita controlar su visibilidad.

Utilice setFooterText y setDateTimeText para establecer el texto, y use setFooterVisibility, setDateTimeVisibility y setSlideNumberVisibility para mostrar los marcadores de posición correspondientes.

El siguiente ejemplo completo aplica el mismo pie de página, texto de fecha/hora y visibilidad del número de diapositiva a todas las diapositivas normales:

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

Si necesita actualizar solo una diapositiva, acceda a esa diapositiva directamente mediante el método getSlides en lugar de iterar por toda la colección.

Establecer encabezados y pies de página en el máster de notas

El máster de notas define el formato común y el comportamiento de los marcadores de posición para las páginas de notas. Utilice la clase MasterNotesSlideHeaderFooterManager cuando desee modificar solo el propio máster de notas.

El siguiente ejemplo establece el encabezado, el pie de página y el texto de fecha/hora en el máster de notas y hace visibles todos los marcadores compatibles en ese máster:

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

El método getMasterNotesSlide devuelve null cuando la presentación no contiene un máster de notas.

Aplicar la configuración del máster de notas a diapositivas de notas subordinadas

Un máster de notas puede aplicar la configuración de encabezado y pie de página a sí mismo y a todas las diapositivas de notas dependientes. Use los métodos de propagación dedicados en MasterNotesSlideHeaderFooterManager cuando los mismos ajustes deban aplicarse a lo largo de la jerarquía de notas.

Por ejemplo, setHeaderAndChildHeadersText y setHeaderAndChildHeadersVisibility actualizan el encabezado del máster de notas y todos los encabezados subordinados. Existen métodos equivalentes para pies de página, fecha/hora y números de diapositiva.

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

Los métodos de propagación usados anteriormente son setFooterAndChildFootersText, setFooterAndChildFootersVisibility, setDateTimeAndChildDateTimesText, setDateTimeAndChildDateTimesVisibility y setSlideNumberAndChildSlideNumbersVisibility.

Establecer encabezados y pies de página en una diapositiva de notas individual

Una diapositiva de notas pertenece a una diapositiva normal concreta. Utilice su clase NotesSlideHeaderFooterManager cuando desee personalizar solo esa página de notas.

El método addNotesSlide devuelve la diapositiva de notas para la diapositiva actual y crea una si aún no existe. El siguiente ejemplo configura la página de notas asociada a la primera diapositiva de la presentación:

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

Si primero propaga la configuración desde el máster de notas y luego cambia una diapositiva de notas individual, los ajustes posteriores por diapositiva le permiten personalizar esa página de notas de forma independiente.

Establecer encabezados y pies de página en el máster de folleto

Las páginas de folleto utilizan el máster de folleto para sus marcadores de posición de encabezado, pie de página, fecha/hora y número de página. A diferencia de las páginas de notas, la configuración de los folletos se gestiona mediante el máster de folleto y no a través de diapositivas de folleto individuales.

Utilice el método getMasterHandoutSlide para acceder al máster de folleto. Si no está presente, llame a setDefaultMasterHandoutSlide para crear el máster de folleto predeterminado.

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

Entender el ámbito y la herencia

Elija el gestor de encabezado/pie de página que coincida con el ámbito que desea modificar:

Use la propagación desde un máster o diseño cuando el mismo ajuste deba aplicarse a lo largo de su jerarquía. Use un gestor de diapositiva individual o de diapositiva de notas cuando necesite un ajuste local para una sola página.

FAQ

¿Puedo añadir un encabezado a una diapositiva normal?

No. PowerPoint no define un marcador de posición de encabezado para diapositivas normales. En diapositivas normales, utilice los marcadores de pie de página, fecha/hora y número de diapositiva. Los marcadores de encabezado están disponibles en las páginas de notas y en los folletos.

¿Qué ocurre si un marcador de pie de página, fecha/hora o número de diapositiva no es visible?

Utilice el gestor de encabezado/pie de página correspondiente para comprobar su visibilidad y habilitarlo cuando sea necesario. Por ejemplo, isFooterVisible indica si hay un marcador de pie de página presente, y setFooterVisibility cambia su visibilidad.

¿Cómo inicio la numeración de diapositivas a partir de un valor distinto de 1?

Llame al método setFirstSlideNumber de la presentación. Los marcadores de número de diapositiva utilizan entonces la secuencia de numeración actualizada.

¿Qué ocurre con los encabezados y pies de página al exportar a PDF, imágenes o HTML?

Los elementos visibles de encabezado y pie de página se renderizan junto con el resto del contenido de la presentación en el formato de salida. Su apariencia depende del tipo de página que se exporta y de la configuración de visibilidad de los marcadores de posición correspondientes.