如何在ASP.NET中把ppt格式转换为html格式 

解决方案 »

  1.   

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.IO;
    using PPT = Microsoft.Office.Interop.PowerPoint;
    using System.Reflection;namespace WritePptDemo
    {
      class Program
      {
      static void Main(string[] args)
      {
      string path; //文件路径变量  PPT.Application pptApp; //Excel应用程序变量
      PPT.Presentation pptDoc; //Excel文档变量  PPT.Presentation pptDoctmp;      path = @"C:\MyPPT.ppt"; //路径
      pptApp = new PPT.ApplicationClass(); //初始化  //如果已存在,则删除
      if (File.Exists((string)path))
      {
      File.Delete((string)path);
      }  //由于使用的是COM库,因此有许多变量需要用Nothing代替
      Object Nothing = Missing.Value;
      pptDoc = pptApp.Presentations.Add(Microsoft.Office.Core.MsoTriState.msoFalse);
      pptDoc.Slides.Add(1, Microsoft.Office.Interop.PowerPoint.PpSlideLayout.ppLayoutText);  string text = "示例文本";  foreach (PPT.Slide slide in pptDoc.Slides)
      {
      foreach (PPT.Shape shape in slide.Shapes)
      {
      shape.TextFrame.TextRange.InsertAfter(text);
      }
      }  //WdSaveFormat为Excel文档的保存格式
      PPT.PpSaveAsFileType format = PPT.PpSaveAsFileType.ppSaveAsDefault;  //将excelDoc文档对象的内容保存为XLSX文档
      pptDoc.SaveAs(path, format, Microsoft.Office.Core.MsoTriState.msoFalse);  //关闭excelDoc文档对象
      pptDoc.Close();  //关闭excelApp组件对象
      pptApp.Quit();  Console.WriteLine(path + " 创建完毕!");  Console.ReadLine();  string pathHtml = @"c:\MyPPT.html";  PPT.Application pa = new PPT.ApplicationClass();  pptDoctmp = pa.Presentations.Open(path, Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse);
      PPT.PpSaveAsFileType formatTmp = PPT.PpSaveAsFileType.ppSaveAsHTML;
      pptDoctmp.SaveAs(pathHtml, formatTmp, Microsoft.Office.Core.MsoTriState.msoFalse);
      pptDoctmp.Close();
      pa.Quit();
      Console.WriteLine(pathHtml + " 创建完毕!");
      }
      }
    }以上程序是使用C# 先创建一个ppt 文件并向里面写入了文字,然后再把此ppt 转换成html ,对于上面程序需要说明的其实就是
    引用dll的问题, 在项目中添加引用,在com 组件中选择 microsoft powerpoint 11.0 object library ,而如果你的电脑没有安装 office 2003 是不会有这个的,而如果安装的是office 2007 则是microsoft powerpoint 12.0 object library。而且即使你引用成功后,还是会编译不通过,是因为少安装了 office PIA ,在安装office 时,如果你是选择的典型安装是不会安装这个的,因为这个只针对开发人员才会用到。可以到网上下载一个 office PIA 安装下就ok了。
      

  2.   

    pptFile = ppt.Presentations.Open(pptFileName, Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoTriState.msoCTrue, Microsoft.Office.Core.MsoTriState.msoFalse);
            pptFile.SaveAs(_HtmlFileName, Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType.ppSaveAsHTML, Microsoft.Office.Core.MsoTriState.msoCTrue);
            pptFile.Close();
    这是我自己用的代码,跟一楼的差不多样,但是转换出来的html打开显示的内容不对,它显示的是网页的源码样,还提示有浏览器不能显示的内容,这是咋回事啊?希望楼上的高手们能帮帮忙给解决哈,不甚感激啊。
      

  3.   

    谢谢上面的高手了,问题解决了,原来我自己在保存格式的时候保存为mht格式了,改为html就好了,再问哈可不可以转换为mht呢?