How can I insert a figure into a report?

I'm trying to use the report generator and automatically build a PDF report. For that, I've been following the object oriented approach, and created a template with holes plus corresponding classes derived from mlreportgen.dom.Document and mlreportgen.dom.DocumentPart. Some of the holes i'd like to fill should receive figures with graphs or small images. However, in my report, I only find [1x1 mlreportgen.report.Figure] insted of the figures.
function fillsignalHeatmap(chapter)
f = figure();
MHeatMap.DrawHeatMap('Data', chapter.ResultSet.Results, 'Parent', f); %renders a heatmap to a given figure
chapter.append(mlreportgen.report.Figure(f)); % chapter is derived from mlreportgen.dom.DocumentPart
end
What am I doing wrong here?
Cheers, Gebhard

 Accepted Answer

You can't append a high level "report" element ( mlreportgen.report.Figure) to a low level "dom" element ( mlreportgen.dom.DocumentPart).
Either create an mlreportgen.report.Chapter and add() the Figure to that OR print the figure to an image and append() the mlreportgen.dom.Image to the DocumentPart. I'd typically recommend the former.

3 Comments

It worked, thank you!
Hi Sean,
I have come acros this same problem but can't seem to get your solution to work.
I hve a dotx template open as as "D" and am trying to add a figure to a hole as follows:
fh = surf(peaks)
chap = Chapter('figureChapter')
add(chap, Figure)
append(D, chap)
however I just get the same as the original post [1x1 mlreportgen.report.Chapter]
Any ideas?
Hi Oliver,
A Chapter is a high-level report object. It cannot be appended to the Document created with D. You either need to use the report API for the report (pulling in the template) or use only lower level DOM components.
I'd recommend asking a new question with all of the detail.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!