Как получить общую продолжительность файла Powerpoint - PullRequest
0 голосов
/ 26 мая 2020

Мне нужна функциональность в моем delphi приложении, чтобы получить общую продолжительность данного файла Powerpoint (формат pptx).

Кто-нибудь, кто может меня подтолкнуть?

Заранее большое спасибо!

Ответы [ 2 ]

0 голосов
/ 29 мая 2020

одно более простое решение (взлом) без использования ole и без установки PowerPoint:

измените расширение pptx на .zip (файлы powerpoint - это набор файлов, сжатых под расширением ppts) и прочтите всю информацию, которую вы хочу из файла ppt / PRESENTATION. xml

done.

0 голосов
/ 26 мая 2020

Кажется, я только что нашел! это то, что у меня есть, и вроде работает.

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;
...