【问题标题】:Powerpoint Conversion to JPEG with ASP.NET?使用 ASP.NET 将 Powerpoint 转换为 JPEG?
【发布时间】:2013-01-17 09:12:00
【问题描述】:

我有一个客户需要一个应用程序,该应用程序将一个 powerpoint 文件上传到一个网络应用程序,该应用程序可以使用 ASP.NET 将幻灯片显示为 jpeg(或 flash、silverlight、HTML、视频.. 任何格式)。

我使用 Office 开发人员工具在 VS 2010 中使用 MVC 构建了应用程序,但客户端服务器没有 Powerpoint,如果 Microsoft.Office.Interop.Powerpoint 程序集无法在主机上调用 Powerpoint,它似乎将无法运行机器。

我已经查看了处理此问题的所有可能讨论,大多数人认为甚至将 Powerpoint 部署在服务器上是不好的做法,所以我的问题是有没有人知道可以将 PPT 幻灯片转换为 JPG 或 Flash 或有什么可以在网站上展示幻灯片的吗?

【问题讨论】:

  • Interop 或多或少是 COM 中类型库的 .NET 等价物。这就像图书馆的卡片目录。它告诉客户端应用程序那里有什么以及在哪里可以找到它。这不是书本身。 MS 建议不要在服务器上自动化 Office 应用程序,但要小心,它可以完成。 PPT 本身不允许有多个实例,因此您必须一次呈现一个任务,并且在确定第一个任务/实例完成之前不要尝试启动另一个任务/实例。

标签: asp.net jpeg powerpoint


【解决方案1】:

这里是使用 Interop 对象..

    private void mConvertPPT_To_Images(string sPPTFilePath, string sImagesDirectoryPath)
    {
        try
        {
            Microsoft.Office.Interop.PowerPoint.Application appPpt = new Microsoft.Office.Interop.PowerPoint.Application();
            Microsoft.Office.Interop.PowerPoint.Presentation objActivePresentation
                = appPpt.Presentations.Open(sPPTFilePath,
                                            Microsoft.Office.Core.MsoTriState.msoCTrue,
                                            Microsoft.Office.Core.MsoTriState.msoTriStateMixed,
                                            Microsoft.Office.Core.MsoTriState.msoFalse);
            //objActivePresentation.SaveAs(sImagesDirectoryPath, PpSaveAsFileType.ppSaveAsJPG, MsoTriState.msoFalse);
            //objActivePresentation.Export(sImagesDirectoryPath + @"\Slide1.png", "png", 960, 720);
            //objActivePresentation.SaveAs(sImagesDirectoryPath + "slide", PpSaveAsFileType.ppSaveAsTIF, MsoTriState.msoFalse);
            int i = 0;
            foreach (Microsoft.Office.Interop.PowerPoint.Slide objSlide in objActivePresentation.Slides)
            {
                //Names are generated based on timestamp. 
                //objSlide.Export("Slide" + i, "PNG", 960, 720);
                objSlide.Export(sImagesDirectoryPath + @"\Slide" + i + ".GIF", "GIF", 960, 720);
                i++;
            }
            objActivePresentation.Close();
            appPpt.Quit();
        }
        catch (Exception ex)
        {
            throw;
        }
    }

【讨论】:

    【解决方案2】:

    iSpring 有一个名为 iSpring Platform (http://www.ispringsolutions.com/ispring-platform) 的解决方案。这是一个 SDK,它允许使用 .NET 的软件将 PPT 演示文稿转换为 HTML5 和 Flash。它支持所有效果、动画和其他 PowerPoint 内容。

    附:看了帖子数据,发现作者大概找到了解决办法。也许我的回答对其他人有用。

    【讨论】:

      猜你喜欢
      • 2011-10-28
      • 2011-05-16
      • 2017-09-01
      • 2021-03-31
      • 2015-03-18
      • 2020-08-03
      • 2014-08-13
      • 2015-02-28
      • 1970-01-01
      相关资源
      最近更新 更多