How to print a figure in a dotx template using report generator
Show older comments
I'm trying to create a report based on a dotx template (word 365) using Report generator. I'm creating the template using the develepor tool in word.
However I'm not able to "print" a figure.
First i tried
Sample = figure('Name','Sample'); plot(0:10,0:10);
import mlreportgen.dom.*; import mlreportgen.report.*;
D = Document('FromTemplate','docx','template.dotx');
open(D);
moveToNextHole(D);
T = Text("This is Sample!");
T.Bold = true;
append(D,T);
% First solution below
MoveToNextHole(D);
append(D,Figure('Sample'));
close(D);
resulting in:
[1x1 mlreportgen.report.Figure]
Second "solution"
I'm able to convert the figure to a picture, but it doesn't scale itself to the template. This causes the image to be far larger than the page and impossible to integrate in report layout. See example below.
moveToNextHole(D);
print(Sample,'-djpeg','Sample');
img = Image('Sample.jpg');
append(D, img);
close(D);

I'm properly using the wrong methods, but for some reason I havent been able to find anything of the subject online. Hopefully someone here can help.
Kind regards
Accepted Answer
More Answers (1)
Chunguang LI
on 27 Sep 2022
0 votes
import mlreportgen.report.*
import mlreportgen.dom.*
d=Document('report','docx');
open(d);
plot([0 1 5], [0 0 4])
rpt = Report();
p = Image(getSnapshotImage(Figure(),rpt));
p.Style={HAlign('center'),ScaleToFit};
append(d,p);
close(d);
Categories
Find more on Page Layout in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!