MATLAB: Graphs in reports in a matlab WebApp

MATLABMATLAB Report GeneratorMATLAB Web Serverreportuiaxesuifigurewebapp

I have a Matlab webApp launched in a Matlab webApp Server that performs a calculation and show a graph to the user (a patch in an uiAxes object). Now I want to offer a button to the user to print a report including some information and a uiAxes capture. Considering that:
  • axes or figures are not supported in webApps then you need to use uiaxes and uifigures
  • saveas() is not supported with uiaxes or uifigures
  • getframe() is not supported with uifigures or uiaxes
  • uiaxes or uifigures are not supported by mlreportgen.report.*
¿Is it possible to include graphs in a report from a web application?.
Thanks and regards
Roberto

Best Answer

Unfortunately, there is currently no completely programmatic way to include snapshots of uiaxes in a report from a web application, for the reasons you already listed.
With version R2019a and later, you can use the figure toolbar to download a snapshot of the axes. The toolbar appears in the top right corner of the axes when you hover your mouse over the axes. To save the figure, mouse over the left-most toolbar icon and select the save icon that appears.
From there, you can use the uigetfile function to prompt the user to specify the saved snapshot image file and then insert the image into the report.
% (In callback to create report)
imgPath = uigetfile("*.png", "Select the axes snapshot image file");
if ~isempty(imgPath)
% Create DOM Image
imgRptr = mlreportgen.dom.Image(imgPath);
% Add Image object to report (or chapter, section, etc)
add(rpt, img);
end