Change Impress Layout at Runtime Using Basic Macro
This tutorial will show how to change the Impress Slide Layouts at Run-time.
This tutorial assumes that you know how to create a basic Impress macro in LibreOffice. You can go through the basic guide using below link.
In a presentation document, there are various styles of Layout present – Title only, Title with single box, double text box etc. For any automation tasks where it is required to generate the Impress presentation files dynamically with a desired layout, we need to program for the layout changes.
LibreOffice Impress 5.1+ comes with below layouts:
- Blank Slide
- Title Slide
- Title, Content
- Title and 2 Content
- Title Only
- Centered Text
- Title, 2 Content and Content
- Title, Content and 2 Content
- Title, 2 Content over content
- Title, Content over content
- Title, 4 Content
- Title, 6 Content
To change the Layout at run-time, use the Layout property of a Slide. Layout property takes a number which refers to any above of the layouts.
For example, to change a slide layout to “Title, Content”, follow below code:
oDoc = ThisComponent ' Get a List of all Slides oSlideList = oDoc.getDrawPages() ' Get the First Slide oSlide = oSlideList.getByIndex(0) oSlide.Layout =1 ' Title, Content
Refer below table to get desired Layout numbers for various Layouts.
|Layout Value||Layout Type|
|0||Title Slide; one title and a text box|
|3||Title , two content|
|12||Title content, 2 content|
|14||Title, content over content|
|15||Title, 2 content and content|
|18||Title , 4 content|
|34||Title, 6 content|