How to add sections to PowerPoint with MATLAB Report Generator

26 visualizaciones (últimos 30 días)
In order to achieve cross platform capability, I've been using the MATLAB Report Generator toolbox to manipulate PowerPoint presentation programmatically. I was going to organize the presentation structure by adding sections to it.
Here is an equivalent MWE with ActiveX on Windows:
% invoke activex server
ppt = actxserver('powerpoint.application');
% add a presentation
ppt.Presentations.Add();
% choose a layout
layout = ppt.ActivePresentation.SlideMaster.CustomLayouts.Item(1);
% add slide 1 and section 1
ppt.ActivePresentation.Slides.AddSlide(1, layout);
ppt.ActivePresentation.SectionProperties.AddBeforeSlide(1,'mySection1');
% add slide 2 and section 2
ppt.ActivePresentation.Slides.AddSlide(2, layout);
ppt.ActivePresentation.SectionProperties.AddBeforeSlide(2,'mySection2');
I would like to get the same thing done with Report Generator..

Respuesta aceptada

Rahul Singhal
Rahul Singhal el 26 de Jun. de 2019
Hi Ruixin,
Currently, the MATLAB Report Generator's PPT API does not support creating sections programmatically.
The team plans to add this functionality in the future releases.
Alternatively, as a workaround, you can add sections in your template presentation with maybe a single slide in each section, for e.g., a Section Header slide. Then generate your new presentation using this template presentation and add the new slides using the index number, which represents the position of this new slide in the generated presentation. See https://www.mathworks.com/help/rptgen/ug/mlreportgen.ppt.presentation.add.html
For example, create a template presentation, named input.pptx, with 2 sections where each section consists of a single section header slide, as shown below:
section.JPG
Now create your output presentation using this input presentation as shown below:
ppt = mlreportgen.ppt.Presentation("output.pptx", "input.pptx");
open(ppt);
% Add slide to Section1.
% Specify the index as 2 as this needs to be inserted after the
% Section 1 header slide which is present at index 1.
sect1Slide = add(ppt,'Title and Content',2);
% Add slide to Section2.
% Specify the index as 4 as this needs to be inserted after the
% Section 2 header slide which is now present at at index 3.
sect2Slide = add(ppt,'Title and Content',4);
close(ppt);
rptview(ppt);
The generated output presentation looks like:
output.JPG
Hope this helps!
Thanks,
Rahul

Más respuestas (0)

Categorías

Más información sobre MATLAB Report Generator en Help Center y File Exchange.

Productos


Versión

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by