Добавление API slide UNO

#api #uno #openoffice-impress

#API #uno #openoffice-впечатляет

Вопрос:

Я создаю дополнение для impress, в котором одной из функций является добавление слайда. Я мог бы добавить пустой слайд, используя XDrawPages для текущего компонента. Как я могу добавить слайд с другим макетом (предопределенные макеты в impress)? Заранее спасибо..

Комментарии:

1. Вы должны использовать метод DrawPage setMasterPage , чтобы связать слайд с образцом. Однако при этом удается скопировать только фон. Все еще выясняю, как скопировать макет…

Ответ №1:

До сих пор мне не повезло с настройкой макета мастера на новый слайд. Однако я использую этот обходной путь:

 model = desktop.getCurrentComponent()
model.duplicate(model.getDrawPages().getByIndex(0))
  

Я в основном дублирую первый слайд (который я оставляю пустым и удаляю в качестве последнего шага). Это копирует все: мастер, макет, содержимое.

Комментарии:

1. Как получить объект desktop?

Ответ №2:

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

 Sub Main
  pages = ThisComponent.getDrawPages()
  pages.insertNewByIndex(pages.getCount() - 1)
  newSlide = pages.getByIndex(pages.getCount() - 1)
  newSlide.layout = 1
End Sub