Hi,
ich versuche gerade automatisch Bilder von Folien einer PowerPoint Präsentation zu erstellen.
Dazu habe ich die Type Library MSPPT.olb importiert und die entsprechenden Units erzeugt.
So sieht der Code aus, den ich benutze:
Delphi-Quellcode:
procedure PPT2Image(Path: string);
var PowerPoint: PowerPointApplication;
AppWasRunning: Boolean;
OleResult: HRESULT;
Unknown: IUnknown;
begin
AppWasRunning := False;
OleResult := GetActiveObject(CLASS_PowerPointApplication, nil, Unknown);
if (OleResult = MK_E_UNAVAILABLE) then
PowerPoint := CoPowerPointApplication.Create
else begin
OleCheck(OleResult);
OleCheck(Unknown.QueryInterface(PowerPointApplication, PowerPoint));
AppWasRunning := True;
end;
try
PowerPoint.Presentations.Open2007(Path, msoTrue, msoTrue, msoFalse, msoFalse);
PowerPoint.ActivePresentation.SaveAs(ExtractFilePath(Path) + 'blub.png', ppSaveAsPNG, msoFalse);
PowerPoint.ActivePresentation.Close;
finally
if not AppWasRunning then
PowerPoint.Quit;
end;
end;
Leider funktioniert das nicht. Bei PowerPoint.Presentations.Open2007(Path, msoCTrue, msoCTrue, msoFalse, msoFalse); kommt es zu einer
Exception "Unbekannter Fehler". Ich hab es auch schon mit Open und einer 2003er Präsentation versucht, aber auch da kommt der gleiche Fehler.
Hat wer eine Idee?
EDIT: Benutze Delphi 2009