2016-07-14 12 views
0

私はNetOffice.PowerPointApiを使用して、既存のPPTXのPowerpoint-Slidesを再生します。これは、これがどのように行われるかである。PowerPoint-Apiを使用して表示する最初のスライドを設定する

PowerPoint.Application powerApplication = new PowerPoint.Application(); 
PowerPoint.Presentation presentation = powerApplication.Presentations.Open("C:\\dev\\test.pptx", MsoTriState.msoTrue, MsoTriState.msoFalse, MsoTriState.msoTrue); 
// presentation.SlideShowSettings.StartingSlide = 2; 
presentation.SlideShowSettings.Run(); 
while (powerApplication.ActivePresentation.SlideShowWindow.View.CurrentShowPosition < 4) 
{ 
    System.Threading.Thread.Sleep(2000); 
    powerApplication.ActivePresentation.SlideShowWindow.View.Next(); 
} 

は今、私の計画は、4

にスライド3を表示することでした。しかし、私はstartingSlide(私の例ではコメントアウト)を設定したとき、私はpowerApplication.ActivePresentation.SlideShowWindow.View.CurrentShowPositionにエラーが表示されます。

{ "SlideShowView.CurrentShowPosition:不正なリクエストこのプレゼンテーションのための 現在、スライドショービューがありません。"}

これは、プロパティStartingSlideを設定した場合にのみ発生します。私がしなければ、プレゼンテーションは第1回から第4回まで実行されます。あなたがSlideShowSettingsの複数のプロパティを設定する必要が

答えて

1

は、オブジェクト:

using NetOffice.OfficeApi.Enums; 
using NetOffice.PowerPointApi.Enums; 
using System; 
using System.Collections.Generic; 
using System.IO; 
using System.Linq; 
using System.Text; 
using System.Threading; 
using System.Threading.Tasks; 
using PowerPoint = NetOffice.PowerPointApi; 

namespace PlayPowerPoint 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      using (var app = new PowerPoint.Application()) 
      { 
       var presentation = app.Presentations.Open(Path.GetFullPath("Test.pptx"), MsoTriState.msoTrue, MsoTriState.msoFalse, MsoTriState.msoFalse); 

       var slideShowSettings = presentation.SlideShowSettings; 

       slideShowSettings.StartingSlide = 2; 
       slideShowSettings.EndingSlide = 4; 
       slideShowSettings.RangeType = PpSlideShowRangeType.ppShowSlideRange; 
       slideShowSettings.AdvanceMode = PpSlideShowAdvanceMode.ppSlideShowManualAdvance; 

       slideShowSettings.Run(); 

       var slideShowView = presentation.SlideShowWindow.View; 

       while (slideShowView.CurrentShowPosition < slideShowSettings.EndingSlide) 
       { 
        Thread.Sleep(2000); 
        slideShowView.Next(); 
       } 

       presentation.Saved = MsoTriState.msoTrue; 
       presentation.Close(); 

       app.Quit(); 
      } 
     } 
    } 
} 
+0

は、驚くべきことに後の2年間で私は再び同じ要件を持っていたし、あなただけの、母:) \ O/ –

+0

正しくその質問に答え幸運何昨日のNetOfficeのすべての質問を無作為にブラウズしていなければなりません:-)あなたのプロジェクトに幸運を祈る! – Jbjstam

関連する問題