如何获得一个Powerpoint文件的总持续时间。

问题描述 投票:0回答:1

我需要在我的delphi应用程序中获得一个给定的Powerpoint-File(pptx格式)的总持续时间的功能。

有谁能帮我解决?

非常感谢,已经提前

delphi powerpoint duration
1个回答
0
投票

我想我刚刚找到了!这就是我的方法,而且似乎很有效。

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;

0
投票

一个更简单的解决方案(黑客),不使用OLE,不安装powerpoint。

把pptx扩展名改为.zip(powerpoint文件是ppts扩展名下压缩的一堆文件),然后从文件pptPRESENTATION.xml中读取你想要的所有信息。

完成。

© www.soinside.com 2019 - 2024. All rights reserved.