Main Content

Create a Presentation Programmatically

This example shows how to create a PowerPoint® presentation by using the MATLAB® API for PowerPoint (PPT API). The example generates these slides:

To programmatically create a presentation:

  1. Import the PPT API namespace.

  2. Create a presentation container.

  3. Add slides.

  4. Add content to the slides.

  5. Generate the presentation.

Import the PPT API namespace

The PPT API classes belong to the mlreportgen.ppt namespace. Import this namespace so that you do not have to use long, fully qualified names when you call the PPT API object constructors and methods.

import mlreportgen.ppt.*

Create a Presentation Container

Create an mlreportgen.ppt.Presentation object to contain the presentation. For this example, specify that the output file name is myPresentation and do not specify a template.

ppt = Presentation('myPresentation.pptx');

Because you did not specify a template, the PPT API uses the default template. A template defines the default slide layouts and styles. To create a custom template, see Set Up a PowerPoint Presentation Template. You can override the default style defined by a template by using format properties and objects. See Presentation Formatting Approaches.

Add Slides and Slide Content

To add a slide, use the add method and specify a slide layout that is available in the template. See Set Up a PowerPoint Presentation Template. This example uses these slide layouts that are included with the default template:

  • Title Slide

  • Title and Picture

  • Title and Content

  • Title and Table

To add content to a slide, use the replace method to replace content placeholders with the new content. For more information about adding and replacing content, see Add and Replace Presentation Content. To use the replace method, you must specify the name that identifies a placeholder in the slide layout. For example, the Title Slide layout has a Title placeholder and a Subtitle placeholder. For information about how to find the content placeholder names for a particular slide layout, see Access PowerPoint Template Elements.

Add a Title Slide

To add a title slide, use the Title Slide layout.

titleSlide = add(ppt,'Title Slide');

The Title Slide layout has these placeholders:

  • Title

  • Subtitle

Replace the Title placeholder with the title text.

replace(titleSlide,'Title','Create Histogram Plots');

Build the title text in pieces so that you can format the histogram function name in a different font.

subtitleText = Paragraph('The ');
funcName = Text('histogram');
funcName.Font = 'Courier New';

append(subtitleText,funcName);
append(subtitleText,' Function');

Replace the Subtitle placeholder with the text contained in SubtitleText.

replace(titleSlide,'Subtitle',subtitleText);

Add a Slide with a Picture

Create an image file to use for the slide picture.

x = randn(10000,1);
h = histogram(x);
saveas(gcf,'myPlot_img.png');

Create an mlreportgen.ppt.Picture object from the image file.

plot1 = Picture('myPlot_img.png');

Add a picture slide to the presentation by using a Title and Picture layout.

pictureSlide = add(ppt,'Title and Picture');

The Title and Picture layout has these placeholders:

  • Title

  • Picture

Replace the Title placeholder with the title text and the Picture placeholder with plot1.

replace(pictureSlide,'Title','Histogram of Vector');
replace(pictureSlide,'Picture',plot1);

The contents of an image file are copied into the presentation when the presentation is closed. Do not delete or overwrite the image file before the presentation is closed. If your presentation program creates multiple image files, give them unique file names.

Add a Slide with Text

To add a slide with text, use the Title and Content layout.

textSlide = add(ppt,'Title and Content');

The Title and Content layout has these placeholders:

  • Title

  • Content

Build the title text in pieces so that you can format the histogram function name in a different font.

titleText = Paragraph('What You Can Do with ');
func = Text('histogram');
func.Font = 'Courier New';
append(titleText,func);

Replace the Title and Content placeholders.

replace(textSlide,'Title',titleText);
replace(textSlide,'Content',{'Create histogram plot of x',...
'Specify:',{'Number of bins','Edges of the bins'},...
'Plot into a specified axes'});

Add a Slide with a Table

To add a slide with a table, use the Title and Table layout.

tableSlide = add(ppt,'Title and Table');

The Title and Table layout has these placeholders:

  • Title

  • Table

Replace the Title placeholder.

replace(tableSlide,'Title','Parameters');

You can use several approaches to create a table. See Create and Format Tables. This example builds a table row by row.

  1. Create a table as an mlreportgen.ppt.Table object.

  2. Create an mlreportgen.ppt.TableRow object for each row of the table.

  3. Create mlreportgen.ppt.TableEntry objects and append them to the table rows.

paramTable = Table();
colSpecs(2) = ColSpec('6in');
colSpecs(1) = ColSpec('3in');
paramTable.ColSpecs = colSpecs;

tr1 = TableRow();
tr1.Style = {Bold(true)};

tr1te1Text = Paragraph('Value');
tr1te2Text = Paragraph('Description');
tr1te1 = TableEntry();
tr1te2 = TableEntry();
append(tr1te1,tr1te1Text);
append(tr1te2,tr1te2Text);
append(tr1,tr1te1);
append(tr1,tr1te2);

tr2 = TableRow();
tr2te1Text = Paragraph('auto');
tr2te1Text.Font = 'Courier New';
tr2te2Text = Paragraph('The default auto algorithm chooses a bin width to ');
append(tr2te2Text,'cover the data range and reveal the shape of the distribution.');
tr2te1 = TableEntry();
tr2te2 = TableEntry();
append(tr2te1,tr2te1Text);
append(tr2te2,tr2te2Text);
append(tr2,tr2te1);
append(tr2,tr2te2);

tr3 = TableRow();
tr3te1Text = Paragraph('scott');
tr3te1Text.Font = 'Courier New';
tr3te2Text = Paragraph(' Is optimal if the data is close ');
append(tr3te2Text,'to being jointly normally distributed. This rule is ');
append(tr3te2Text,'appropriate for most other distributions, as well.');
tr3te1 = TableEntry();
tr3te2 = TableEntry();
append(tr3te1,tr3te1Text);
append(tr3te2,tr3te2Text);
append(tr3,tr3te1);
append(tr3,tr3te2);

append(paramTable,tr1);
append(paramTable,tr2);
append(paramTable,tr3);

Replace the Table placeholder with paramTable.

replace(tableSlide,'Table',paramTable);

Generate and View the Presentation

close(ppt);
rptview(ppt);

See Also

| | | | | |

Related Topics