Доступ к слайдам презентации в PHP
Aspose.Slides позволяет получать доступ к слайдам двумя способами: по индексу и по идентификатору.
Access a Slide by Index
Все слайды в презентации упорядочены численно в зависимости от позиции слайда, начиная с 0. Первый слайд доступен по индексу 0; второй слайд доступен по индексу 1; и т.д.
Класс Presentation, представляющий файл презентации, предоставляет все слайды как коллекцию SlideCollection (коллекцию объектов Slide). Этот PHP‑код показывает, как получить доступ к слайду по его индексу:
# Создает объект Presentation, представляющий файл презентации
$pres = new Presentation("demo.pptx");
try {
# Получает слайд с помощью его индекса
$slide = $pres->getSlides()->get_Item(0);
} finally {
$pres->dispose();
}
Access a Slide by ID
Каждому слайду в презентации присвоен уникальный идентификатор. Вы можете использовать метод getSlideById (представленный классом Presentation), чтобы обратиться к этому идентификатору. Этот PHP‑код показывает, как задать корректный идентификатор слайда и получить доступ к слайду через метод getSlideById:
# Создаёт объект Presentation, представляющий файл презентации
$pres = new Presentation("demo.pptx");
try {
# Получает ID слайда
$id = $pres->getSlides()->get_Item(0)->getSlideId();
# Получает доступ к слайду по его ID
$slide = $pres->getSlideById($id);
} finally {
$pres->dispose();
}
Change the Slide Position
Aspose.Slides позволяет изменять позицию слайда. Например, вы можете указать, чтобы первый слайд стал вторым.
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд (позицию которого вы хотите изменить) по его индексу
- Установите новую позицию для слайда с помощью метода setSlideNumber.
- Сохраните изменённую презентацию.
Этот PHP‑код демонстрирует операцию, при которой слайд в позиции 1 перемещается в позицию 2:
# Создаёт объект Presentation, представляющий файл презентации
$pres = new Presentation("Presentation.pptx");
try {
# Получает слайд, позиция которого будет изменена
$sld = $pres->getSlides()->get_Item(0);
# Устанавливает новую позицию для слайда
$sld->setSlideNumber(2);
# Сохраняет изменённую презентацию
$pres->save("helloworld_Pos.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
Первый слайд стал вторым; второй слайд стал первым. При изменении позиции слайда остальные слайды автоматически корректируются.
Set the Slide Number
С помощью метода setFirstSlideNumber (представленного классом Presentation) вы можете задать новый номер для первого слайда в презентации. Эта операция приводит к пересчёту номеров остальных слайдов.
- Создайте экземпляр класса Presentation.
- Получите номер слайда.
- Установите номер слайда.
- Сохраните изменённую презентацию.
Этот PHP‑код демонстрирует операцию, при которой номер первого слайда установлен в 10:
# Создаёт объект Presentation, представляющий файл презентации
$pres = new Presentation("HelloWorld.pptx");
try {
# Получает номер первого слайда
$firstSlideNumber = $pres->getFirstSlideNumber();
# Устанавливает номер первого слайда
$pres->setFirstSlideNumber(10);
# Сохраняет изменённую презентацию
$pres->save("Set_Slide_Number_out.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
Если вы хотите пропустить первый слайд, вы можете начать нумерацию со второго слайда (и скрыть нумерацию для первого слайда) следующим образом:
$presentation = new Presentation();
try {
$layoutSlide = $presentation->getLayoutSlides()->getByType(SlideLayoutType::Blank);
$presentation->getSlides()->addEmptySlide($layoutSlide);
$presentation->getSlides()->addEmptySlide($layoutSlide);
$presentation->getSlides()->addEmptySlide($layoutSlide);
# Устанавливает номер для первого слайда презентации
$presentation->setFirstSlideNumber(0);
# Отображает номера слайдов для всех слайдов
$presentation->getHeaderFooterManager()->setAllSlideNumbersVisibility(true);
# Скрывает номер слайда для первого слайда
$presentation->getSlides()->get_Item(0)->getHeaderFooterManager()->setSlideNumberVisibility(false);
# Сохраняет изменённую презентацию
$presentation->save("output.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
FAQ
Совпадает ли номер слайда, видимый пользователем, с нулевым индексом коллекции?
Номер, отображаемый на слайде, может начинаться с произвольного значения (например, 10) и не обязан совпадать с индексом; связь контролируется настройкой first slide number презентации.
Влияют ли скрытые слайды на индексацию?
Да. Скрытый слайд остаётся в коллекции и учитывается при индексации; «скрытый» относится к отображению, а не к его позиции в коллекции.
Меняется ли индекс слайда при добавлении или удалении других слайдов?
Да. Индексы всегда отражают текущий порядок слайдов и пересчитываются при вставке, удалении и перемещении.