在使用 Microsoft.interop 以编程方式创建 ppt 演示文稿时,如何阻止其自动打开?

How can I stop a ppt presentation from opening automatically while creating it programmatically using Microsoft.interop?

我正在使用 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();

当代码到达代码 Presentation pptPresentation = pptApplication.Presentations.Add(MsoTriState.msoTrue); 时,powerpoint 应用程序弹出打开这个新创建的 PPT,然后所有幻灯片都一张一张添加进去。

您是否尝试将 Presentations.Add(WithWindow) 参数设置为 msoFalse

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

将其设置为 msoTrue 会在可见 window 中创建演示文稿。参考 here.

您还可以将应用程序可见性更改为 false。

pptApplication.Visible = MsoTriState.msoFalse;