Доступ к слайдам презентации на Android
Aspose.Slides позволяет получать доступ к слайдам двумя способами: по индексу и по ID.
Получить слайд по индексу
Все слайды в презентации расположены численно в порядке их позиции, начиная с 0. Первый слайд доступен по индексу 0; второй — по индексу 1; и т.д.
Класс Presentation, представляющий файл презентации, предоставляет все слайды как коллекцию ISlideCollection (коллекцию объектов ISlide). Этот Java‑код показывает, как получить слайд по его индексу:
// Создает объект Presentation, представляющий файл презентации
Presentation pres = new Presentation("demo.pptx");
try {
// Получает слайд по его индексу
ISlide slide = pres.getSlides().get_Item(0);
} finally {
pres.dispose();
}
Получить слайд по ID
Каждому слайду в презентации присвоен уникальный идентификатор. Вы можете использовать метод getSlideById (доступный в классе Presentation) для получения слайда по этому ID. Этот Java‑код показывает, как передать корректный ID слайда и получить его через метод getSlideById:
// Создаёт объект Presentation, представляющий файл презентации
Presentation pres = new Presentation("demo.pptx");
try {
// Получает ID слайда
int id = (int) pres.getSlides().get_Item(0).getSlideId();
// Получает слайд по его ID
IBaseSlide slide = pres.getSlideById(id);
} finally {
pres.dispose();
}
Изменить позицию слайда
Aspose.Slides позволяет изменять позицию слайда. Например, можно указать, что первый слайд должен стать вторым.
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд (позицию которого нужно изменить) по его индексу
- Задайте новую позицию слайда через свойство setSlideNumber.
- Сохраните изменённую презентацию.
Этот Java‑код демонстрирует операцию, при которой слайд из позиции 1 перемещается в позицию 2:
// Создает объект Presentation, представляющий файл презентации
Presentation pres = new Presentation("Presentation.pptx");
try {
// Получает слайд, позицию которого нужно изменить
ISlide sld = pres.getSlides().get_Item(0);
// Устанавливает новую позицию для слайда
sld.setSlideNumber(2);
// Сохраняет изменённую презентацию
pres.save("helloworld_Pos.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
Первый слайд стал вторым; второй — первым. При изменении позиции одного слайда остальные автоматически корректируются.
Установить номер слайда
С помощью свойства setFirstSlideNumber (доступного в классе Presentation) можно задать новый номер для первого слайда в презентации. Эта операция приводит к пересчёту номеров остальных слайдов.
- Создайте экземпляр класса Presentation.
- Получите номер слайда.
- Установите номер слайда.
- Сохраните изменённую презентацию.
Этот Java‑код демонстрирует операцию, при которой номер первого слайда устанавливается в 10:
// Создаёт объект Presentation, представляющий файл презентации
Presentation pres = new Presentation("HelloWorld.pptx");
try {
// Получает номер слайда
int firstSlideNumber = pres.getFirstSlideNumber();
// Устанавливает номер слайда
pres.setFirstSlideNumber(10);
// Сохраняет изменённую презентацию
pres.save("Set_Slide_Number_out.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
Если вы хотите пропустить первый слайд, можно начать нумерацию со второго слайда (и скрыть нумерацию первого) следующим образом:
Presentation presentation = new Presentation();
try {
ILayoutSlide 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 (presentation != null) presentation.dispose();
}
FAQ
Совпадает ли номер слайда, видимый пользователем, с нулевой базой индекса коллекции?
Номер, отображаемый на слайде, может начинаться с произвольного значения (например, 10) и не обязан соответствовать индексу; связь контролируется настройкой first slide number презентации.
Влияют ли скрытые слайды на индексацию?
Да. Скрытый слайд остаётся в коллекции и учитывается при индексации; «скрытый» относится к отображению, а не к его позиции в коллекции.
Изменяется ли индекс слайда, когда добавляются или удаляются другие слайды?
Да. Индексы всегда отражают текущий порядок слайдов и пересчитываются при вставке, удалении и перемещении.