Print Figure to Word Document with Current Figure Size

Hi All,
I am currently using a function on File Exchange to print my figure to a Word document. I noticed the size of the figure on the doc was a lot smaller than the actual size of the figure. I tried to set the "position" and "paperPosition" of the figure before printing, but neither setting affected the figure size. Could anyone please help me on this issue? I just want to make the figure in the doc the same size as the current figure size in MATLAB. The code that I used from File Exchange is below. Any help would be greatly appreciated.
Thank you,
Lynniz
print(gcf)
% Find end of document and make it the insertion point:
end_of_doc = get(actx_word_p.activedocument.content,'end');
set(actx_word_p.application.selection,'Start',end_of_doc);
set(actx_word_p.application.selection,'End',end_of_doc);
% Paste the contents of the Clipboard:
%also works Paste(ActXWord.Selection)
invoke(actx_word_p.Selection,'Paste');

 Respuesta aceptada

Eric
Eric el 28 de Feb. de 2012
I print figures to Word in a different way. First print the figure to a temporary file using something like
temp_fname = [tempname '.png'];%Create a temporary name
print(['-f' sprintf('%d',figure_number)], '-dpng', temp_fname);
where figure_number is the number of the figure you're working with.
Then insert the picture using something like
Word_COM.Selection.InlineShapes.AddPicture(temp_fname);
where Word_COM is the COM object for Word.
Lastly, delete the temporary file and set the size of the picture using
delete(temp_fname);
set(Pic, 'ScaleHeight', scale, 'ScaleWidth', scale);
where scale is some user-defined value. You can adjust the scale until you get something you like.
Good luck,
Eric

3 comentarios

lynniz
lynniz el 14 de Mzo. de 2012
I had another problem with "print(gcf)" today, but I used your scripts instead and worked out great. My problem is fixed, and I am able to change the figure size. Thank you very much!
Lynniz
Subhamoy Saha
Subhamoy Saha el 20 de Mzo. de 2019
Editada: Subhamoy Saha el 20 de Mzo. de 2019
HI lynniz, I'm also having similar trouble. Would you please explain what does 'Pic' refer to in the following line of the code given by Eric?
set(Pic, 'ScaleHeight', scale, 'ScaleWidth', scale);
Pic is assigned when for example using an .AddPitcure metohd
Pic = selection.InlineShapes.AddPicture(ImPathName); % absolute path to the image
set(Pic, 'ScaleHeight', scale, 'ScaleWidth', scale);
Maybe this will help you reference the Pic variable

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Desktop en Centro de ayuda y File Exchange.

Preguntada:

el 28 de Feb. de 2012

Comentada:

el 7 de En. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by