如何从单个ppt幻灯片创建视频

时间:2014-07-30 13:40:37

标签: c# interop powerpoint

我正在使用以下代码将PowerPoint演示文稿(.ppt)转换为.wmv视频文件:

static void Main(string[] args)
{
    string fileName = @"D:\example1.pptx";
    string exportName = "video_of_presentation";
    string exportPath = @"D:\{0}.wmv";

    Microsoft.Office.Interop.PowerPoint.Application ppApp = new Microsoft.Office.Interop.PowerPoint.Application();
    ppApp.Visible = MsoTriState.msoTrue;
    ppApp.WindowState = PpWindowState.ppWindowMinimized;
    Microsoft.Office.Interop.PowerPoint.Presentations oPresSet = ppApp.Presentations;
    Microsoft.Office.Interop.PowerPoint._Presentation oPres = oPresSet.Open(
                    fileName,
                    MsoTriState.msoFalse,
                    MsoTriState.msoFalse,
                    MsoTriState.msoFalse);

    try
    {
        oPres.CreateVideo(exportName);
        oPres.SaveCopyAs(String.Format(exportPath, exportName),
        PowerPoint.PpSaveAsFileType.ppSaveAsWMV,
        MsoTriState.msoCTrue);
    }
    finally
    {
        ppApp.Quit();
    }
}

它的工作很棒。现在,我尝试将此演示文稿中的单个幻灯片转换为视频文件。我试着用这个:

var i = 0;
foreach (var slide in oPres.Slides)
{
    slide.CreateVideo(string.Format("slide{0}", i));
    i++;
}

但幻灯片似乎没有CreateVideo方法。

我认为我需要在每次迭代时创建一个新的演示文稿并添加幻灯片,但我无法理解如何将演示文稿中的幻灯片添加到新的演示文稿中。

我试过这段代码:

Presentation singleSlidePpt = ppApp.Presentations.Add(MsoTriState.msoTrue);
singleSlidePpt.Slides.Add(oPres.Slides[0], CustomLayout);

有任何建议如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

将演示文稿保存为新名称,然后删除 DON' T 所需的所有幻灯片。

请务必按相反顺序执行,否则您将得到错误的结果。

答案 1 :(得分:-1)

如果您想将PPT转换为视频,PowerPoint本身就具有此功能"创建视频"。

但我不知道它是否可以直接转换为.wmv视频。如果没有,你可以在PPT转换成视频后使用转换器,虽然这似乎不是最简单的方法。