Доступ к слайду в презентации

Aspose.Slides позволяет получать доступ к слайдам двумя способами: по индексу и по ID.

Доступ к слайду по индексу

Все слайды в презентации расположены в числовом порядке на основе позиции слайда, начиная с 0. Первый слайд доступен по индексу 0; второй слайд - по индексу 1; и так далее.

Класс Presentation, представляющий файл презентации, предоставляет все слайды в виде коллекции ISlideCollection (коллекции объектов ISlide). Этот PHP-код показывает, как получить доступ к слайду через его индекс:

  # Создает объект Presentation, представляющий файл презентации
  $pres = new Presentation("demo.pptx");
  try {
    # Получает слайд, используя его индекс
    $slide = $pres->getSlides()->get_Item(0);
  } finally {
    $pres->dispose();
  }

Доступ к слайду по ID

Каждый слайд в презентации имеет уникальный ID. Вы можете использовать метод getSlideById (который предоставляет класс Presentation), чтобы обратиться к этому ID. Этот PHP-код показывает, как указать действительный ID слайда и получить доступ к слайду через метод getSlideById:

  # Создает объект Presentation, представляющий файл презентации
  $pres = new Presentation("demo.pptx");
  try {
    # Получает ID слайда
    $id = $pres->getSlides()->get_Item(0)->getSlideId();
    # Получает доступ к слайду через его ID
    $slide = $pres->getSlideById($id);
  } finally {
    $pres->dispose();
  }

Изменение позиции слайда

Aspose.Slides позволяет изменять позицию слайда. Например, вы можете указать, что первый слайд должен стать вторым слайдом.

  1. Создайте экземпляр класса Presentation.
  2. Получите ссылку на слайд (позицию которого вы хотите изменить) через его индекс.
  3. Установите новую позицию для слайда через свойство setSlideNumber.
  4. Сохраните изменённую презентацию.

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

Первый слайд стал вторым; второй слайд стал первым. Когда вы изменяете позицию слайда, остальные слайды автоматически корректируются.

Установка номера слайда

Используя свойство setFirstSlideNumber (который предоставляет класс Presentation), вы можете указать новый номер для первого слайда в презентации. Эта операция вызывает перерасчет других номеров слайдов.

  1. Создайте экземпляр класса Presentation.
  2. Получите номер слайда.
  3. Установите номер слайда.
  4. Сохраните изменённую презентацию.

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