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

ppt Export

 

sino8975
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 19.02.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2016, 11:26     Titel: ppt Export
  Antworten mit Zitat      
Hallo zusammen,
ich habe folgendes Problem:
ich schaffe es nur das current figure nach ppt zu exportieren. Ich möchte jedoch ALLE offenen figures exportieren. Könnt ihr mir da weiterhelfen? Ich habe versucht eine Schleife zu schreiben aber nach dem current figure hört das Skript einfach auf.
Außerdem habe ich etwas geschrieben um alle offenen figures in einem Pfad abzuspeichern. Wie füge ich diese gespeicherten figs in ppt ein? Das wäre dann eine Notlösung! Danke schonmal
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 22.02.2016, 12:37     Titel: Re: ppt Export
  Antworten mit Zitat      
sino8975 hat Folgendes geschrieben:
Ich habe versucht eine Schleife zu schreiben aber nach dem current figure hört das Skript einfach auf.
Außerdem habe ich etwas geschrieben um alle offenen figures in einem Pfad abzuspeichern.


Hallo,

poste doch einfach mal deinen bisherigen Code, am Besten ausführbar mit Beispielplots. Das macht die Hilfe deutlich einfacher!

Gruß DSP
Private Nachricht senden Benutzer-Profile anzeigen
 
sino8975
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 19.02.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2016, 19:59     Titel:
  Antworten mit Zitat      
Hi,

also ich habs jetzt folgendermaßen geplant, weil ich doch lieber die figs vorher gespeichert hätte. Ich speichere alle offenen figures in einen Pfad, soweit klappt es auch. Nur habe ich das Problem, dass ich alle Daten in diesem Ordner (figure1, figure2, Bild3, Abbildung 4...) in Powerpoint einfügen möchte , ein Slide pro fig. Ich habe es mit hgexport versucht aber bin zu nichts gekommen. Habt ihr da einen Lösungsweg?

Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 22.02.2016, 20:55     Titel:
  Antworten mit Zitat      
Ich kann mich nur selbst zitieren...

Zitat:
poste doch einfach mal deinen bisherigen Code, am Besten ausführbar mit Beispielplots. Das macht die Hilfe deutlich einfacher!


Wo ist da das Problem? Deine Ausführungen sind einfach nicht stichhaltig genug um dir eine genau Hilfe anzubieten.

Was heißt denn "Ich habe es mit hgexport versucht aber bin zu nichts gekommen"?

Genauso schwer zu deuten ist dieser Satz:

Zitat:
Ich habe versucht eine Schleife zu schreiben aber nach dem current figure hört das Skript einfach auf.


Meine Glaskugel ist diesmal leider auch blind Wink Du hast hier sicherlich keine dummen Kommentare wegen deines Programmierversuchs zu befürchten.
Private Nachricht senden Benutzer-Profile anzeigen
 
sino8975
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 19.02.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2016, 13:47     Titel:
  Antworten mit Zitat      
Hi DSP, ok nachdem ich jetzt deine Garantie hab Very Happy , poste ich mal was ich bisher habe (GUI):

Code:
% --- Executes on button press in pushbuttonSave.
function pushbuttonSave_Callback(hObject, eventdata, handles)
% hObject    handle to pushbuttonSave (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

directory = get(findobj('Tag','editDir'),'String');
child = findall(0,'Type','fig');
child = sort(child,'ascend');
handles.child = child;

for i=1:length(child)
    h = child(i);
    drawnow;
    title = num2str(child(i));
    fullFileName = fullfile(directory, title);

    saveas(handles.child(i), fullFileName);
end

% --- Executes on button press in pushbuttonCreate.
function pushbuttonCreate_Callback(hObject, eventdata, handles)
% hObject    handle to pushbuttonCreate (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

   ppt = actxserver('Powerpoint.Application');
    ppt.Visible = 1;
   
    child = findall(0,'Type','fig');
    child = sort(child,'ascend');
    handles.child = child;

for i = 1:length(child)
    h = child(i);
    drawnow;
    title = num2str(child(i));
    print -dmeta
    op = invoke(ppt.Presentations,'Add');
    slide_count = get(op.Slides,'Count');
    slide_count = int32(double(slide_count)+1);
    new_slide = invoke(op.Slides,'Add',slide_count,11);
    set(new_slide.Shapes.Title.TextFrame.TextRange,'Text',title);
    slide_H = op.PageSetup.SlideHeight;
    slide_W = op.PageSetup.SlideWidth;
    insert_fig = invoke(new_slide.Shapes,'Paste');
    pos = get(h, 'Position');
    fig_W = pos(3);
    fig_H = pos(4);
    fig_H = get(h,Height);
    fig_W = get(h,'Width');
    opos = get(h, 'OuterPosition'); %[left bottom width height]
    set(h,opos(1),single((double(slide_W) - double(fig_W))/2));
    set(h,opos(2),single(double(slide_H) - double(fig_H)));
end
   
h_actX.Quit;                                                                %Close the application
h_actX.delete;
clear h_actX


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Wenn ich beispielsweise 20 figures offen habe, soll in der Schleife jedes automatisch in ppt eingefügt werden, wobei jedes figure ein Slide bekommen soll.
Und kannst du mir vlt einen Tipp geben, wie ich schon gespeicherte fig-Dateien suche und einfüge? Vielen Dank
edit winkow: bitte code umgebung benutzen
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 23.02.2016, 14:42     Titel:
  Antworten mit Zitat      
Welche Funktion wird denn zuerst ausgeführt? pushbuttonSave_Callback?

Warum speicherst du erst alles in *.fig files, nur um es später ohnehin mit print in ein Bild zu verwandeln?

Soll die Funktion 'pushbuttonCreate_Callback' nun die gespeicherten *.fig files verwenden, also laden und dann als Bild einfügen? Oder sind die figures immer noch offen? Bei erstem Weg macht das hier in meinen Augen keinen Sinn...

Code:

child = findall(0,'Type','fig');
    child = sort(child,'ascend');
    handles.child = child;
 
Private Nachricht senden Benutzer-Profile anzeigen
 
sino8975
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 19.02.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2016, 15:26     Titel:
  Antworten mit Zitat      
Also beide Funktionen sind getrennte pushbuttons, also separat ausführbar. pushbuttonSave_Callback soll nur die offenen figure abspeichern. Ursprünglich wollte ich die offenen figure direkt in ppt exportieren. Bei der großen Anzahl an offenen figures habe ich mir gedacht, vlt ist es sicherer zunächst alles abzuspeichern, falls der PC streikt. Dann hätte ich wenigstens die figs.
'pushbuttonCreate_Callback' soll dann die gespeicherten figs aus 'directory' in ppt einfügen. Soweit der Gedanke.
Die figures sind offen, falls der direkte Export ebenfalls ohne Probleme funktioniert würde ich mich auch über diese Hilfe freuen.
Private Nachricht senden Benutzer-Profile anzeigen
 
sino8975
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 19.02.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2016, 15:59     Titel:
  Antworten mit Zitat      
Hi,
habe das Problem für den direkten Export gefunden:
print(h,'-dmeta') statt print -dmeta
Ich habe vergessen ein handle zuzuweisen, deswegen hat das Skript immer das current figure genommen.
Es wäre trotzdem sehr nett wenn du mir mit der anderen Lösung hilfst, also figs aus Pfad nehmen und in ppt einfügen.
Danke
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 23.02.2016, 16:41     Titel:
  Antworten mit Zitat      
Du müsstest dir zunächst die ganzen Pfade sichern, in deinem Fall wäre das alle fullFileName. Entweder in das handle der GUI packen oder mit setappdata arbeiten. Denn irgendwie musst du sie ja der anderen Funktion zugänglich machen.

In der pushbuttonCreate_Callback könnte das dann so aussehen...

Code:

function pushbuttonCreate_Callback(hObject, eventdata, handles)
% hObject    handle to pushbuttonCreate (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

ppt = actxserver('Powerpoint.Application');
ppt.Visible = 1;
% Nur ein Bespiel für deine gespeicherten figures
fullFileName = {'Testfigure1.fig';'Testfigure2.fig';'Testfigure3.fig'}

for i=1:length(fullFileName)
    % open figure
    hfig = openfig(fullFileName{i,1});
    % print
    print(hfig,'-dmeta')
    % usw ...
end

 


Gruß DSP
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.