How to print a figure in a dotx template using report generator
Mostra commenti meno recenti
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
Risposta accettata
Più risposte (1)
Chunguang LI
il 27 Set 2022
0 voti
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);
Categorie
Scopri di più su Page Layout in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!