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

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

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

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

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

// Создание объекта Presentation, представляющего файл презентации
Presentation presentation = new Presentation("AccessSlides.pptx");

// Получение ссылки на слайд через его индекс
ISlide slide = presentation.Slides[0];

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

Каждый слайд в презентации имеет уникальный идентификатор, связанный с ним. Вы можете использовать метод GetSlideById (предоставленный классом Presentation) для получения этого ID. Этот код на C# показывает, как указать действительный ID слайда и получить доступ к этому слайду через метод GetSlideById:

// Создание объекта Presentation, представляющего файл презентации
Presentation presentation = new Presentation("AccessSlides.pptx");

// Получение ID слайда
uint id = presentation.Slides[0].SlideId;

// Доступ к слайду через его ID
IBaseSlide slide = presentation.GetSlideById(id);

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

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

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

Этот код на C# демонстрирует операцию, при которой слайд на позиции 1 перемещается на позицию 2:

// Создание объекта Presentation, представляющего файл презентации
using (Presentation pres = new Presentation("ChangePosition.pptx"))
{
    // Получение слайда, позицию которого нужно изменить
    ISlide sld = pres.Slides[0];

    // Установка новой позиции для слайда
    sld.SlideNumber = 2;

    // Сохранение измененной презентации
    pres.Save("Aspose_out.pptx", SaveFormat.Pptx);
}

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

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

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

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

Этот код на C# демонстрирует операцию, при которой номер первого слайда устанавливается на 10:

// Создание объекта Presentation, представляющего файл презентации
using (Presentation presentation = new Presentation("HelloWorld.pptx"))
{
    // Получение номера слайда
    int firstSlideNumber = presentation.FirstSlideNumber;

    // Установка номера слайда
    presentation.FirstSlideNumber=10;
    
    // Сохранение измененной презентации
    presentation.Save("Set_Slide_Number_out.pptx", SaveFormat.Pptx);
}

Если вы хотите пропустить первый слайд, вы можете начать нумерацию со второго слайда (и скрыть нумерацию для первого слайда) таким образом:

using (var presentation = new Presentation())
{
    var layoutSlide = presentation.LayoutSlides.GetByType(SlideLayoutType.Blank);
    presentation.Slides.AddEmptySlide(layoutSlide);
    presentation.Slides.AddEmptySlide(layoutSlide);
    presentation.Slides.AddEmptySlide(layoutSlide);

    // Установка номера для первого слайда презентации
    presentation.FirstSlideNumber = 0;

    // Отображение номеров слайдов для всех слайдов
    presentation.HeaderFooterManager.SetAllSlideNumbersVisibility(true);

    // Скрытие номера слайда для первого слайда
    presentation.Slides[0].HeaderFooterManager.SetSlideNumberVisibility(false);

    // Сохранение измененной презентации
    presentation.Save("output.pptx", SaveFormat.Pptx);
}