Using MATLAB 2015a, I've been attempting to add numerous .png files to an existing PowerPoint 2010 presentation (.pptx) using the following code;
%
% Clear out all workspace variables, close all open figures, and clear the
% command window.
clear all;close all;clc;% List all current folder contents ending with .png. Resulting names will
% appear in the order returned by the operating system.
files = dir('*.png');% Create Common Object Model (COM) server so MATLAB can export data to
% PowerPoint
g = actxserver('powerpoint.application');% Open PowerPoint and make it visible
g.Visible = 1;Presentation = g.Presentation;% Prompt the user for the PowerPoint file to amend
[fn, pn] = uigetfile('*.pptx', 'Select PowerPoint File To Amend');filemane = fullfile(pn, fn);Presentation = invoke(Presentation, 'open', filename);% Get current number of slides
slide_count = get(Presentation.Slides, 'Count');% Export all PNGs in the current directory to the PowerPoint file specified
% above. The following slides will be added to the END of the PowerPoint
% file. All slides will have a common title.
for i=1:length(files) slide_count = int32(double(slide_count)+1); slide = invoke(Presentation.Slides, 'Add', slide_count{i}, 11); set(slide.Shapes.Title.Textframe.Textrange, 'Text', 'SomeTitle'); Image{i} = slide.Shapes.AddPicture(',Current Directory>\files(i).name', 'msoFalse', 'msoTrue', 0, 80, 720, 440);end% Save the amended PowerPoint presentation to the current directory
Presentation.SaveAs('<Currrent directory>\DRAFT.pptx');% Close PowerPoint as a COM automation server
g.Quit;g.delete;
However, I keep getting the following error:
Invoke Error, Dispatch Exception. Description: The specified file wasn't found.
The line in question is this:
Image{i} = slide.Shapes.AddPicture('C:\Users\onstottb\Documents\MATLAB\files(i).name', 'msoFalse', 'msoTrue', 0, 80, 720, 440);
It appears I am implementing something wrong, but I'm not sure where.
Any advice is greatly appreciated.
Thank you.
Best Answer