显示演示生成消息
表示生成消息
当您生成 PowerPoint® 演示文稿时,PPT API 可以显示消息。在演示文稿生成过程中,每次创建或追加演示文稿元素时都会触发消息。
您可以定义演示文稿生成时显示的附加消息。PPT API 提供了以下类用于定义消息:
ProgressMessageDebugMessageWarningMessageErrorMessage
PPT API 提供了用于处理演示消息调度和显示的附加类。它使用 MATLAB® 事件和侦听程序来发送消息。根据指定 PPT 对象的事件数据发送消息。有关事件和侦听程序的介绍,请参阅 事件和侦听程序概念。
注意
当您创建消息调度程序时,PPT API 会保留该调度程序直到当前 MATLAB 会话结束。为了避免在 MATLAB 会话期间重复报告消息对象,请删除消息事件侦听程序。
显示 PPT 默认消息
此示例显示如何显示默认的 PPT 调试消息。使用类似的方法显示其他类型的 PPT 演示消息。
使用
MessageDispatcher.getTheDispatcher方法创建消息调度程序。对所有消息使用相同的调度程序。dispatcher = MessageDispatcher.getTheDispatcher;
要显示调试消息,请使用
MessageDispatcher.Filter属性。dispatcher.Filter.DebugMessagesPass = true;
使用 MATLAB
addlistener函数添加侦听程序。指定调度程序对象、源和事件数据以及指定消息的事件数据和格式的disp函数。l = addlistener(dispatcher,"Message", ... @(src, evtdata) disp(evtdata.Message.formatAsText));
在生成演示文稿的代码后添加删除侦听程序的代码。
delete(l);
此演示文稿显示调试消息。
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);
创建并显示进度消息
此示例显示如何创建和发送进度消息。您可以对其他类型的消息(例如警告)使用类似的方法。
创建消息调度程序。
dispatcher = MessageDispatcher.getTheDispatcher;
使用 MATLAB
addlistener函数添加侦听程序。l = addlistener(dispatcher,"Message", ... @(src, evtdata) disp(evtdata.Message.formatAsText));
使用
Message.dispatch方法发送消息。指定调度程序对象和要调度的消息。这里的消息是一个名为firstSlide的调试消息,而Presentation对象slides是该消息的来源。dispatch(dispatcher,ProgressMessage("firstSlide",slides));在生成演示文稿的代码后添加删除侦听程序的代码。
delete(l);
本演示使用了此进度消息。
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|mlreportgen.ppt.MessageDispatcher.getTheDispatcher|formatAsHTML|formatAsText|passesFilter