Save image to a new word document
15 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Miguel Herrera
el 19 de Abr. de 2018
Respondida: Madheswaran
el 28 de Dic. de 2024 a las 5:53
Good afternoon, relatively simple question. Lets say a have a graph plot(x,y) and want to save that image to a new word document. I'd like to give that graph a label (ex. Figure 1) and also add more graphs to it. Also, is there an automated way of naming said word document?
1 comentario
Guillaume
el 19 de Abr. de 2018
In my opinion, you'll spend less time saving the graph as an image (or better as SVG) and importing that manually into word than writing the code to do that automatically from matlab.
Respuestas (1)
Madheswaran
el 28 de Dic. de 2024 a las 5:53
Hi Miguel,
You can use MATLAB's 'actxserver' to interact with Microsoft Word to achieve your desired task. Below is a minimal example to create a Word document, insert a plot as an image, label it, and save the document with an automated name.
% Sample data for plotting
x = 1:10;
y = rand(1, 10);
% Create a new figure and plot
fig = figure('Visible','off');
plot(x, y);
title('Sample Plot');
% Save the plot as an image
imgFile = 'tempPlot.png';
saveas(fig, imgFile);
% Initialize Word application
wordApp = actxserver('Word.Application');
wordApp.Visible = false; % Set to true if you want to see the Word application
doc = wordApp.Documents.Add;
% Insert plot image into the Word document
selection = wordApp.Selection;
selection.InlineShapes.AddPicture(fullfile(pwd, imgFile));
selection.TypeParagraph; % Move to a new line
selection.TypeText('Figure 1: Sample Plot');
% Add more graphs if needed
docFileName = [pwd '\GraphDocument.docx'];
invoke(doc, 'saveas', docFileName);
% Clean up
doc.Close;
wordApp.Quit;
delete(wordApp);
delete(imgFile);
disp(['Word document saved as: ' docFileName]);
The above code generates a sample graph and inserts it into a Word document, which is then saved in the current working directory. To change the document's name or save location, you can modify the 'docFileName' variable accordingly.
For more information, refer to the following MathWorks documentation:
- actxserver - https://mathworks.com/help/releases/R2024b/matlab/ref/actxserver.html
- invoke - https://mathworks.com/help/releases/R2024b/matlab/ref/com.invoke.html
Hope this helps!
0 comentarios
Ver también
Categorías
Más información sobre Printing and Saving en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!