WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Mit Matlab Folien in Powerpoint laden und Seite auswählen

 

Sven1904
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 18.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2013, 08:14     Titel: Mit Matlab Folien in Powerpoint laden und Seite auswählen
  Antworten mit Zitat      
Hallo ich habe folgendes Programm von MathWorks verwendet zum Speichern von Abbildungen in Powerpoint und das funktioniert auch sehr gut.

Jetzt habe ich folgendes Problem und finde leider keine Informationen

1. Ich möchte falls der Dateiname unter dem ich es speichere schon besteht, dass bei einem neuen Ausführen des Programms die gleiche Powerpointdatei wieder geöffnet wird und sozusagen die neue Abbildung als nächste Seite dran gehangen wird. So wie es auch bei saveppt2 und saveppt funktioniert.

2. Außerdem würde ich gerne auswählen, auf welcher Seite von Powerpoint ich die Folie speichere und nicht automatisch auf Seite 1.

Gibt es dazu schon Lösungen?
Ich bin neu hier im Forum und würde mich sehr über Hilfe freuen.

Schöne Grüße


Code:
%% Open PowerPoint as a COM Automation server
h = actxserver('PowerPoint.Application')
% Show the PowerPoint window
h.Visible = 1;
% Bring up the PowerPoint session help window - this contains the API, the
% complete function list. At first it's a little intimidating, but after
% acclimating it's not hard to find the methods you're looking for. Also,
% the function signatures are given in VBA syntax, so they takes a little
% deciphering.
h.Help

%% ADD PRESENTATION
% View the methods that can be invoked
h.Presentation.invoke
% Add a presentation via "Add" method
Presentation = h.Presentation.Add

%% ADD SLIDES
% View the methods that can be invoked
Presentation.Slides.invoke

% Add a slide via "Add" method
% IF USING OFFICE 2003, use these commands:
Slide1 = Presentation.Slides.Add(1,'ppLayoutBlank')
Slide2 = Presentation.Slides.Add(2,'ppLayoutBlank')

% IF USING OFFICE 2007, use these commands:
blankSlide = Presentation.SlideMaster.CustomLayouts.Item(1);
Slide1 = Presentation.Slides.AddSlide(1,blankSlide);
Slide2 = Presentation.Slides.AddSlide(1,blankSlide);

%% GENERATE MATLAB IMAGES
figure;
plot(1:10)
print('-dpng','-r150','<full path>\test1.png')
figure;
image(ceil(64*rand(20,20)))
print('-dpng','-r150','<full path>\test2.png')
% Note: it is still necessary to save these files to disk, and then import
% them into PowerPoint from a disk file, because PowerPoint does not
% understand MATLAB data types. However, we can script this all from
% MATLAB.

%% ADD IMAGES TO SLIDES WITH TITLES
% Note: Change the image file full path names to where you save them
Image1 = Slide1.Shapes.AddPicture('<full path>\test1.png','msoFalse','msoTrue',100,20,500,500)
Image2 = Slide2.Shapes.AddPicture('<full path>\test2.png','msoFalse','msoTrue',100,20,500,500)

Title1 = Slide1.Shapes.AddTextbox('msoTextOrientationHorizontal',200,10,400,70)
Title1.TextFrame.TextRange.Text = 'plot(1:10)'

Title2 = Slide2.Shapes.AddTextbox('msoTextOrientationHorizontal',200,10,400,70)
Title2.TextFrame.TextRange.Text = 'image(ceil(64*rand(20,20)))'

%% SAVE PRESENTATION
% Note: Change the presentation full path name to where you save it
Presentation.SaveAs('C:\...\ExamplePresentation.ppt')

%% Close PowerPoint as a COM Automation server
h.Quit;
h.delete;


[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]
Private Nachricht senden Benutzer-Profile anzeigen


Sven1904
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 18.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.09.2013, 11:47     Titel:
  Antworten mit Zitat      
Hallo Smile

Also ich habe es jetzt soweit hinbekommen, dass ich die Folien auf einer beliebigen Seite in Powerpoint speichern kann. Falls ich z.B. die Abbildung auf Seite 10 speichern will, aber das Dokument nur 5 Seiten hat, werden automatisch 5 Seiten hinzugefügt.

Jetzt habe ich nur ein letztes Problen. Angenommen das Dokument besteht schon mit z.b 10 Seiten und ich möchte erneut eine Abbildung in das Dokument speichern z.B auf Seite 5 dann wird jetzt jedes mal eine neue Seite hinzugefügt und somit verrutschen auch die alten Abbildungen. So ist dann die Abbildung die das erste mal auf Seite 10 war auf Seite 11.

Wie könnte ich einfach Abbildungen in Powerpoint hinzufügen, wenn die Seiten schon bestehen, ohne eine neue Seite hinzuzufügen?

Vielen Dank für eure Hilfe


Code:

function saveppt_a4p_root(folder, pptFileName, slideNumber, top, left, size);

h=-1;
h = actxserver('PowerPoint.Application');
h.visible;


filespec = fullfile(folder,pptFileName);
if exist(filespec,'file')
    op = invoke(h.Presentations,'Open',filespec,[],[],0);    
else
    op = invoke(h.Presentations,'Add');
end


slide_H = op.PageSetup.SlideHeight;
slide_W = op.PageSetup.SlideWidth;


powerPointpages = get(op.Slides,'Count')
missingPages = slideNumber - powerPointpages - 1


    if missingPages > 0
       for i=1:missingPages
       new_slide = invoke(op.Slides,'Add',1,1);
       end
    else
    end
   
    new_slide = invoke(op.Slides,'Add',slideNumber,1);

    print -dmeta;
    Image1 = new_slide.Shapes.Paste;
    Image1.Top = top;
    Image1.Left = left;
    Image1.ScaleWidth(size,'msoFalse');


if ~exist(filespec,'file')
    % Save file as new:
    invoke(op,'SaveAs',filespec,1);
else
   % Save existing file:
invoke(op,'Save');
end


h.Quit;
h.delete;

end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.