将电影从Powerpoint导出到C#中的文件

时间:2011-02-14 10:01:14

标签: c# video powerpoint

某些Powerpoint演示文稿包含嵌入式电影。 如何使用C#(VSTO或Oficce COM Api)从演示文稿中导出电影(或获取电影文件的路径)?

3 个答案:

答案 0 :(得分:5)

这是一个简单的演示:

不要忘记添加对PowerPoint COM API的引用 (Microsoft PowerPoint 12.0对象库)。

using PowerPoint = Microsoft.Office.Interop.PowerPoint;
using Office = Microsoft.Office.Core;

然后你可以像这样获得电影路径

    private void button1_Click(object sender, EventArgs e)
    {
        PowerPoint.Application app = new PowerPoint.Application();
        app.Visible = Office.MsoTriState.msoTrue;
        //open powerpoint file in your hard drive
        app.Presentations.Open(@"e:\my tests\hello world.pptx");

        foreach (PowerPoint.Slide slide in app.ActivePresentation.Slides)
        {
            PowerPoint.Shapes slideShapes = slide.Shapes;
            foreach (PowerPoint.Shape shape in slideShapes)
            {
                if (shape.Type == Office.MsoShapeType.msoMedia &&
                    shape.MediaType == PowerPoint.PpMediaType.ppMediaTypeMovie)
                {
                    //LinkFormat.SourceFullName contains the movie path 
                    //get the path like this
                    listBox1.Items.Add(shape.LinkFormat.SourceFullName);
                    //or use System.IO.File.Copy(shape.LinkFormat.SourceFullName, SOME_DESTINATION) to export them
                }
            }
        }
    }

我希望这会有所帮助。

<强> [编辑:]

关于史蒂夫评论如果你只想要嵌入式电影,你只需像任何其他zip文件一样解压缩.pptx文件(例如使用DotNetZip)并在此路径中查找嵌入视频([PowerPoint_fileName] \ ppt \ media)

答案 1 :(得分:3)

这很容易。使用SharpZipLib库将文件解压缩为Zip文件,文件将位于ppt \ media文件夹中:)

这个问题可以帮到你:

Programmatically extract embedded file from PowerPoint presentation

这是sharp-zip-lib的链接:

http://www.icsharpcode.net/opensource/sharpziplib/

答案 2 :(得分:1)