The PPT API can display messages when you generate a PowerPoint® presentation. The messages are triggered every time a presentation element is created or appended during presentation generation.
You can define additional messages to display while a presentation generates. The PPT API provides these classes for defining messages:
ProgressMessage
DebugMessage
WarningMessage
ErrorMessage
The PPT API provides additional classes for handling presentation message dispatching and display. It uses MATLAB® events and listeners to dispatch messages. A message is dispatched based on event data for a specified PPT object. For an introduction to events and listeners, see Event and Listener Concepts.
Note
When you create a message dispatcher, the PPT API keeps the dispatcher until the end of the current MATLAB session. To avoid duplicate reporting of message objects during a MATLAB session, delete message event listeners.
This example shows how to display the default PPT debug messages. Use a similar approach for displaying other kinds of PPT presentation messages.
Create a message dispatcher, using the
MessageDispatcher.getTheDispatcher
method. Use the same
dispatcher for all messages.
dispatcher = MessageDispatcher.getTheDispatcher;
To display debug messages, use the
MessageDispatcher.Filter
property.
dispatcher.Filter.DebugMessagesPass = true;
Add a listener using the MATLAB addlistener
function.
Specify the dispatcher object, the source and event data, and a disp
function
that specifies the event data and format for the message.
l = addlistener(dispatcher,'Message', ... @(src, evtdata) disp(evtdata.Message.formatAsText));
Add code that deletes the listener after the code that generates the presentation.
delete(l);
This presentation displays debug messages.
import mlreportgen.ppt.*; dispatcher = MessageDispatcher.getTheDispatcher; dispatcher.Filter.DebugMessagesPass = true; l = addlistener(dispatcher,'Message', ... @(src, evtdata) disp(evtdata.Message.formatAsText)); slides = Presentation('myMessagePresentation'); titleSlide = add(slides,'Title and Content'); p = Paragraph('Hello World:'); p.Style = {Bold(true)}; t = Text(' How are you?'); t.Bold = false; append(p,t); add(titleSlide,'Content',p); close(slides); delete(l);
This example shows how to create and dispatch a progress message. You can use a similar approach for other kinds of messages, such as warnings.
Create a message dispatcher.
dispatcher = MessageDispatcher.getTheDispatcher;
Add a listener using the MATLAB addlistener
function.
l = addlistener(dispatcher,'Message', ... @(src, evtdata) disp(evtdata.Message.formatAsText));
Dispatch the message, using the Message.dispatch
method.
Specify the dispatcher object and the message to dispatch. Here the message
is a debug message called firstSlide
, and the
Presentation
object slides
is the
source of the message.
dispatch(dispatcher,ProgressMessage('firstSlide',slides));
Add code that deletes the listener after the code that generates the presentation.
delete(l);
This presentation uses this progress message.
import mlreportgen.ppt.*; pre = Presentation('myPresentation.pptx'); dispatcher = MessageDispatcher.getTheDispatcher; l = addlistener(dispatcher,'Message', ... @(src, evtdata) disp(evtdata.Message.formatAsText)); dispatch(dispatcher,ProgressMessage('starting presentation',pre)); open(pre); titleText = Text('This is a Title'); titleText.Style = {Bold}; replace(pre,'Title',titleText); close(pre); delete(l);
dispatch
| formatAsHTML
| formatAsText
| mlreportgen.ppt.MessageDispatcher.getTheDispatcher
| passesFilter