我需要在我的delphi应用程序中获得一个给定的Powerpoint-File(pptx格式)的总持续时间的功能。
有谁能帮我解决?
非常感谢,已经提前
我想我刚刚找到了!这就是我的方法,而且似乎很有效。
function GetPPTDurationSec(pPPTFileName: String): Integer;
var
oPPTApp: OleVariant;
oPPTPresenation: OleVariant;
iX, iTotalSlides, iSlideTime, iTotalTime: Integer;
begin
Try
Result := 0;
oPPTApp := CreateOleObject('PowerPoint.Application');
oPPTPresenation := oPPTApp.Presentations.Open(pPPTFileName, True, True, False);
iTotalSlides := oPPTPresenation.Slides.Count;
iTotalTime := 0;
for iX := 1 to iTotalSlides do
begin
iSlideTime := oPPTPresenation.Slides.Item(iX).SlideShowTransition.AdvanceTime;
iTotalTime := iTotalTime + iSlideTime;
end;
oPPTPresenation.Close;
oPPTApp.Quit;
Result := iTotalTime;
Except
Result := 0;
End;
end;
一个更简单的解决方案(黑客),不使用OLE,不安装powerpoint。
把pptx扩展名改为.zip(powerpoint文件是ppts扩展名下压缩的一堆文件),然后从文件pptPRESENTATION.xml中读取你想要的所有信息。
完成。