【问题标题】:Export Movies from Powerpoint to file in C#将电影从 Powerpoint 导出到 C# 中的文件
【发布时间】:2011-02-14 10:01:13
【问题描述】:

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

【问题讨论】:

  • 因为电影是嵌入的,所以没有通往它们的路径。它们是 PPTX 文件本身的一部分。您可以通过解压缩获取 PPTX 中的嵌入式媒体(电影和声音)。深入了解解压缩文件的文件夹结构,就会有一个媒体文件夹。声音/视频将在其中。但是,它们不会有原始文件名。相反,它们将具有 Media1.mov 等名称。

标签: c# video powerpoint


【解决方案1】:

这是一个简单的演示:

不要忘记添加对 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 文件(例如使用 DotNetZip)一样解压缩 .pptx 文件并在此路径中查找嵌入的视频 ([PowerPoint_fileName]\ppt\media)

【讨论】:

  • 不幸的是,它不会。原始问题指定嵌入了视频。此示例将提供链接(但不是嵌入)视频的路径。
  • 我以为他在这个问题中指的是链接视频,因为获取嵌入式视频更容易,并且不需要办公室 COM api,只需像任何其他 zip 文件一样解压缩 .pptx 文件(例如使用 DotNetZip ) 并在此路径 ([PowerPointfileName]\ppt\media) 中查找嵌入视频
  • 是的;我在对原始帖子的评论中提到了解压缩技巧,但您做得更好,并提供了 zip 中的实际路径。谢谢!
【解决方案2】:

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

这个问题会对你有所帮助:

Programmatically extract embedded file from PowerPoint presentation

这是sharp-zip-lib的链接:

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

【讨论】:

    【解决方案3】:
    猜你喜欢
    • 2011-07-02
    • 2010-09-10
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 2016-11-27
    • 2012-01-09
    • 1970-01-01
    相关资源
    最近更新 更多