Acceder a diapositivas de presentación en PHP
Aspose.Slides permite acceder a diapositivas de dos maneras: por índice y por ID.
Acceder a una diapositiva por índice
Todas las diapositivas de una presentación están ordenadas numéricamente según la posición, comenzando desde 0. La primera diapositiva es accesible mediante el índice 0; la segunda mediante el índice 1; etc.
La clase Presentation, que representa un archivo de presentación, expone todas las diapositivas como una colección SlideCollection (colección de objetos Slide). Este código PHP muestra cómo acceder a una diapositiva mediante su índice:
# Instancia un objeto Presentation que representa un archivo de presentación
$pres = new Presentation("demo.pptx");
try {
# Accede a una diapositiva usando su índice de diapositiva
$slide = $pres->getSlides()->get_Item(0);
} finally {
$pres->dispose();
}
Acceder a una diapositiva por ID
Cada diapositiva en una presentación tiene un ID único asociado. Puede utilizar el método getSlideById (expuesto por la clase Presentation) para dirigirse a ese ID. Este código PHP muestra cómo proporcionar un ID de diapositiva válido y acceder a esa diapositiva mediante el método getSlideById:
# Instancia un objeto Presentation que representa un archivo de presentación
$pres = new Presentation("demo.pptx");
try {
# Obtiene el ID de una diapositiva
$id = $pres->getSlides()->get_Item(0)->getSlideId();
# Accede a la diapositiva mediante su ID
$slide = $pres->getSlideById($id);
} finally {
$pres->dispose();
}
Cambiar la posición de la diapositiva
Aspose.Slides permite cambiar la posición de una diapositiva. Por ejemplo, puede especificar que la primera diapositiva pase a ser la segunda.
- Crear una instancia de la clase Presentation.
- Obtener la referencia de la diapositiva (cuya posición desea cambiar) mediante su índice.
- Establecer una nueva posición para la diapositiva mediante el método setSlideNumber.
- Guardar la presentación modificada.
Este código PHP demuestra una operación en la que la diapositiva en la posición 1 se mueve a la posición 2:
# Instancia un objeto Presentation que representa un archivo de presentación
$pres = new Presentation("Presentation.pptx");
try {
# Obtiene la diapositiva cuya posición será cambiada
$sld = $pres->getSlides()->get_Item(0);
# Establece la nueva posición para la diapositiva
$sld->setSlideNumber(2);
# Guarda la presentación modificada
$pres->save("helloworld_Pos.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
La primera diapositiva pasó a ser la segunda; la segunda diapositiva pasó a ser la primera. Cuando cambia la posición de una diapositiva, las demás diapositivas se ajustan automáticamente.
Establecer el número de diapositiva
Utilizando el método setFirstSlideNumber (expuesto por la clase Presentation), puede especificar un nuevo número para la primera diapositiva de una presentación. Esta operación hace que se recalculen los números de las demás diapositivas.
- Crear una instancia de la clase Presentation.
- Obtener el número de diapositiva.
- Establecer el número de diapositiva.
- Guardar la presentación modificada.
Este código PHP demuestra una operación donde el número de la primera diapositiva se establece en 10:
# Instancia un objeto Presentation que representa un archivo de presentación
$pres = new Presentation("HelloWorld.pptx");
try {
# Obtiene el número de diapositiva
$firstSlideNumber = $pres->getFirstSlideNumber();
# Establece el número de diapositiva
$pres->setFirstSlideNumber(10);
# Guarda la presentación modificada
$pres->save("Set_Slide_Number_out.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
Si prefiere omitir la primera diapositiva, puede iniciar la numeración a partir de la segunda diapositiva (y ocultar la numeración de la primera) de esta manera:
$presentation = new Presentation();
try {
$layoutSlide = $presentation->getLayoutSlides()->getByType(SlideLayoutType::Blank);
$presentation->getSlides()->addEmptySlide($layoutSlide);
$presentation->getSlides()->addEmptySlide($layoutSlide);
$presentation->getSlides()->addEmptySlide($layoutSlide);
# Establece el número para la primera diapositiva de la presentación
$presentation->setFirstSlideNumber(0);
# Muestra los números de diapositiva en todas las diapositivas
$presentation->getHeaderFooterManager()->setAllSlideNumbersVisibility(true);
# Oculta el número de diapositiva de la primera diapositiva
$presentation->getSlides()->get_Item(0)->getHeaderFooterManager()->setSlideNumberVisibility(false);
# Guarda la presentación modificada
$presentation->save("output.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
Preguntas frecuentes
¿El número de diapositiva que ve el usuario coincide con el índice basado en cero de la colección?
El número que se muestra en una diapositiva puede comenzar a partir de un valor arbitrario (p. ej., 10) y no tiene que coincidir con el índice; la relación está controlada por la configuración del first slide number de la presentación.
¿Las diapositivas ocultas afectan al indexado?
Sí. Una diapositiva oculta sigue formando parte de la colección y se cuenta en el indexado; “oculta” se refiere a la visualización, no a su posición en la colección.
¿Cambia el índice de una diapositiva cuando se añaden o eliminan otras diapositivas?
Sí. Los índices siempre reflejan el orden actual de las diapositivas y se recalculan al insertar, eliminar o mover diapositivas.