Как я могу остановить автоматический запуск PPT во время его создания - PullRequest
0 голосов
/ 17 апреля 2020

введите код здесь. Я использую office.interop.powerpoint для создания презентации powerpoint, но проблема в том, что презентация powerpoint сначала открывается на переднем плане, затем слайды добавляются по мере выполнения функции и, наконец, сохраняют файл.

Как могу ли я вообще остановить это приложение PowerPoint, вместо этого все процессы, работающие в фоновом режиме, будут окончательно сохранены. Это несколько похоже на случай:

Application pptApplication = new Application();

Microsoft.Office.Interop.PowerPoint.Slides slides;
Microsoft.Office.Interop.PowerPoint._Slide slide;
Microsoft.Office.Interop.PowerPoint.TextRange objText;

// Create the Presentation File
Presentation pptPresentation = pptApplication.Presentations.Add(MsoTriState.msoTrue);

Microsoft.Office.Interop.PowerPoint.CustomLayout customLayout = pptPresentation.SlideMaster.CustomLayouts[Microsoft.Office.Interop.PowerPoint.PpSlideLayout.ppLayoutText];

for(int i=0;i<4;i++){
        // Create new Slide
        slides = pptPresentation.Slides;
        slide = slides.AddSlide(1, customLayout);

        objText = slide.Shapes[2].TextFrame.TextRange;
        objText.Text = "Content goes here\nYou can add text\nItem 3";

        Microsoft.Office.Interop.PowerPoint.Shape shape = slide.Shapes[2];
        slide.Shapes.AddPicture(pictureFileName,Microsoft.Office.Core.MsoTriState.msoFalse,Microsoft.Office.Core.MsoTriState.msoTrue,shape.Left, shape.Top, shape.Width, shape.Height);


}

pptPresentation.SaveAs(@"c:\temp\fppt.pptx", Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType.ppSaveAsDefault, MsoTriState.msoTrue);
//pptPresentation.Close();
//pptApplication.Quit();

Когда код достигает Презентация pptPresentation = pptApplication.Presentations.Add (MsoTriState.msoTrue); , всплывающее окно powerpoint n, тогда все слайды создаются по одному одним ...

1 Ответ

1 голос
/ 17 апреля 2020

Вы пытались установить для параметра Presentations.Add(WithWindow) значение msoFalse?

Presentation pptPresentation = pptApplication.Presentations.Add(MsoTriState.msoFalse);

Установка значения msoTrue создает презентацию в видимом окне. См. здесь .

Вы также можете изменить видимость приложения на false.

pptApplication.Visible = MsoTriState.msoFalse;
...