这只是一个小程序,就是将ppt转换成html,方法很多,为了以后备用,在此记录一下,也和大家分享 源码如下: using System; using System.Collections.Generic; using System.Text; using System.IO; using PPT = Microsoft.Office.Interop.PowerPoint; using

这只是一个小程序,就是将ppt转换成html,方法很多,为了以后备用,在此记录一下,也和大家分享
  源码如下:

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了
 
  ----------------------------------Office文件转换成Html格式---------------------------------------------------------------------------------------------------------------------------------------------------------
  
  
  
 using   Microsoft.Office.Core;
 using Microsoft.Office.Interop.PowerPoint;

using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.Web;
  using System.IO;
  using System.Text.RegularExpressions;
  using Nd.Webs;
  using Aspose.Cells;
  using Aspose.Words;
  using ND.CommonHelper;
  using Microsoft.Office.Interop.PowerPoint;
  using Microsoft.Office.Core;

namespace Api.Note.Base
  {
      #region Office文件转换成Html格式
      class OfficeHtmlBo
      {
          #region InsertHeadHtml
          /// <summary>
          /// InsertHeadHtml
          /// </summary>
          /// <param   name="WordFilePath">InsertHeadHtml</param>
          private string   InsertHeadHtml(string strHtml, string realPath)
          {
              int index   = strHtml.IndexOf("<body");
              strHtml =   strHtml.Insert(index, "<div   style='height:60px;font-size:14px;margin:0px 0px   12px 0px;padding:14px 4px 12px 12px;line-height:24px;height:1%;'>以下是该文档的HTML预览效果。<br/><span>由于是网页提取显示word中的内容,有可能部分显示与源文档中有差异,如想查看更准确的信息,</span>您可以点击&nbsp;<a   style='color:6699FF;text-decoration:underline;'   href='/Lib/UdControls/Download.aspx?action=Download&appFormCode=" +   HttpContext.Current.Request.QueryString["appFormCode"].ToString() +   "&path=" +   HttpContext.Current.Request.QueryString["path"].ToString() +   "&encrypt=" + HttpContext.Current.Request.QueryString["encrypt"].ToString()   + "'><b>下载原始附件</b></a></div>");

Regex   reg = new   Regex(@"(?<start><img[^>]+?src="")(?<src>[^""]+?)(?<end>""[^>]+?>)");
              strHtml =   reg.Replace(strHtml, delegate(Match m)
              {
                    return string.Format("{0}{1}{2}{3}",
                        m.Groups["start"].Value,
                        realPath,
                        m.Groups["src"].Value,
                        m.Groups["end"].Value
                        );
              });

return strHtml;
          }
          #endregion

#region GetLeftStr
          /// <summary>
          /// 截取字符串左边指定长度
          /// </summary>
          /// <param   name="str"></param>
          /// <param   name="length"></param>
          ///   <returns></returns>
          public string GetLeftStr(string   str, int length)
          {
              length =   length * 2;
              string   tempStr = "";
              int i = 0;
              foreach   (char c in str)
              {
                    tempStr += c.ToString();
                    if (((int)c >= 33) && ((int)c <= 126))
                    {
                        //字母和符号原样保留 
                        i += 1;
                    }
                    else
                    {
                        i += 2;
                    }
                    if (i >= length)
                    {
                        return tempStr;
                    }
              }
              return   str;
          }

#endregion

#region 将Word文档转换成HTML格式
          /// <summary>
          /// 将Word文档转换成HTML格式
          /// </summary>
          /// <param   name="WordFilePath">Word文档格式</param>
          private void WordToHtmlFile(string   WordFilePath)
          {
              try
              {
                    // 指定原文件和目标文件
                    string realPath = WordFilePath.Substring(0,   WordFilePath.LastIndexOf("/") + 1);
                    WordFilePath = System.Web.HttpContext.Current.Server.MapPath(WordFilePath);
                    object target = WordFilePath.Substring(0,   WordFilePath.LastIndexOf(".")) + ".html";
                    //string realPath = WordFilePath.Substring(0,   WordFilePath.LastIndexOf(".")) + ".html";

if (!File.Exists(target.ToString()))
                    {
                        Document doc = new Document(WordFilePath);
                        doc.Save(target.ToString(), SaveFormat.Html);
                    }

StreamReader sr = new StreamReader(target.ToString(), Encoding.Default);
                    string strHtml = sr.ReadToEnd();

strHtml = InsertHeadHtml(strHtml, realPath);
                    HttpContext.Current.Response.Write(strHtml);

sr.Close();
              }
              catch   (Exception ex)
              {
                    //记录异常
                    LogEntry logEntry = new LogEntry();
                    logEntry.Message = ex.Message;
                    logEntry.Title = "---->将Word文档转换成HTML格式异常[WordToHtmlFile]";
                    logEntry.TimeStamp = DateTime.Now;
                    logEntry.LogEntryType = LogEntryType.Error;
                    logEntry.LogCatalog = LogCatalog.ExceptionLog;
                    logEntry.StackTrace = ex.StackTrace;
                    LogPosition logPosition = LogPosition.FileLog;
                    string positionParameter =   SysConfig.ToString(SysConfig.GetAppSetting("LogPath"));
                    SysLogger.Write(logEntry, logPosition, positionParameter);
              }
          }
          #endregion

#region 将Excel文件转换成HTML格式
          /// <summary>
          /// 将Excel文件转换成HTML格式
          /// </summary>
          /// <param   name="ExcelFilePath">Excel文件路径</param>
          private void   ExcelToHtmlFile(string ExcelFilePath)
          {
              try
              {
                    string realPath = ExcelFilePath.Substring(0,   ExcelFilePath.LastIndexOf("/") + 1);
                    int index = ExcelFilePath.LastIndexOf("/");
                    string fileName;
                    if (ExcelFilePath.IndexOf(":") != -1)
                    {
                        fileName = ExcelFilePath.Split(new char[] { ':' })[0].ToString();
                        fileName = GetLeftStr(fileName.Substring(0,   fileName.LastIndexOf(".")), 10) +   fileName.Substring(fileName.LastIndexOf("."));
                        fileName = HttpUtility.UrlEncode(fileName, Encoding.UTF8);
                    }
                    else
                    {
                        fileName = ExcelFilePath.Substring(index + 1, ExcelFilePath.Length - index -   1);
                        fileName = GetLeftStr(fileName.Substring(0,   fileName.LastIndexOf(".")), 10) +   fileName.Substring(fileName.LastIndexOf("."));
                        //编码
                        fileName = HttpUtility.UrlEncode(fileName, Encoding.UTF8);
                    }
                    fileName = fileName.Substring(0, fileName.LastIndexOf("."));
                    ExcelFilePath = System.Web.HttpContext.Current.Server.MapPath(ExcelFilePath);
                    //目标html文件路径
                    object target = ExcelFilePath.Substring(0,   ExcelFilePath.LastIndexOf(".")) + ".html";

string target2 = ExcelFilePath.Substring(0,   ExcelFilePath.LastIndexOf("\\")) + "\\" + fileName +   "_files\\sheet001.htm";
                    if (!File.Exists(target.ToString()))
                    {
                        //为了保险,只读方式打开 
                        //object readOnly = true;
                        //// 指定另存为格式(html) 
                        //object format = Microsoft.Office.Interop.Excel.XlFileFormat.xlHtml;

////打开Excel文件
                        //oBook = excelApp.Workbooks.Open(ExcelFilePath, Unknown, readOnly,
                        //    Unknown, Unknown, Unknown, Unknown, Unknown, Unknown,
                        //    Unknown, Unknown, Unknown, Unknown, Unknown, Unknown);

//// 转换格式 
                        //oBook.SaveAs(target, format, Unknown, Unknown, Unknown, Unknown,
                        //       Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange,
                        //     Unknown, Unknown, Unknown, Unknown, Unknown);

Workbook wBook = new Workbook();
                        wBook.Open(ExcelFilePath);
                        wBook.Save(target.ToString(), FileFormatType.Html);
                    }

StreamReader sr = new StreamReader(target2.ToString(), Encoding.Default);
                    string strHtml = sr.ReadToEnd();

strHtml = InsertHeadHtml(strHtml, realPath);

strHtml = strHtml.Replace("window.location.replace", "");
                    strHtml = strHtml.Replace("filelist.xml", realPath + "/"   + fileName + "_files/filelist.xml");
                    strHtml = strHtml.Replace("stylesheet.css", realPath +   "/" + fileName + "_files/stylesheet.css");
                    HttpContext.Current.Response.Write(strHtml);

sr.Close();
              }
              catch   (Exception ex)
              {
                    //记录异常
                    LogEntry logEntry = new LogEntry();
                    logEntry.Message = ex.Message;
                    logEntry.Title = "---->将Excel文件转换成HTML格式[ExcelToHtmlFile]";
                    logEntry.TimeStamp = DateTime.Now;
                    logEntry.LogEntryType = LogEntryType.Error;
                    logEntry.LogCatalog = LogCatalog.ExceptionLog;
                    logEntry.StackTrace = ex.StackTrace;
                    LogPosition logPosition = LogPosition.FileLog;
                    string positionParameter =   SysConfig.ToString(SysConfig.GetAppSetting("LogPath"));
                    SysLogger.Write(logEntry, logPosition, positionParameter);
              }
          }
          #endregion

#region 将PPT文件转换成HTML格式
          /// <summary>
          /// 将PPT文件转换成HTML格式
          /// </summary>
          /// <param   name="PptFilePath">PPT文件路径</param>
          private void PptToHtmlFile(string   PptFilePath)
          {
                ApplicationClass ac = new ApplicationClass();
                Presentation pptFile = null;
              try
              {
                    string realPath = PptFilePath.Substring(0,   PptFilePath.LastIndexOf(".")) + ".html";
                    PptFilePath = System.Web.HttpContext.Current.Server.MapPath(PptFilePath);
                    //获得html文件名
                    object target = PptFilePath.Substring(0,   PptFilePath.LastIndexOf(".")) + ".html";

if (!File.Exists(target.ToString()))
                    {
                        if (PptFilePath.Contains(".pptx"))
                        {
                            pptFile = ac.Presentations.Open2007(PptFilePath, MsoTriState.msoCTrue,   MsoTriState.msoCTrue, MsoTriState.msoFalse, MsoTriState.msoFalse);
                            pptFile.SaveAs(target.ToString(), PpSaveAsFileType.ppSaveAsHTML,   MsoTriState.msoCTrue);
                        }
                        else if (PptFilePath.Contains(".ppt"))
                        {
                            pptFile = ac.Presentations.Open(PptFilePath, MsoTriState.msoCTrue,   MsoTriState.msoCTrue, MsoTriState.msoFalse);
                            pptFile.SaveAs(target.ToString(), PpSaveAsFileType.ppSaveAsHTML,   MsoTriState.msoCTrue);
                        }
                    }
                    //StreamReader sr = new StreamReader(target.ToString(), Encoding.Default);
                    //string strHtml = sr.ReadToEnd();
                    //Response.Write(strHtml);
                    HttpContext.Current.Response.Redirect(realPath);
              }
              finally
              {
                    if (pptFile != null)
                    {
                        pptFile.Close();
                    }
                    ac.Quit();
                    GC.Collect();
              }
          }
          #endregion
      }
      #endregion

}

c# 将PPT转换成HTML的更多相关文章

  1. 杂项-PPT:如何把幻灯片ppt转换成视频

    ylbtech-杂项-PPT:如何把幻灯片ppt转换成视频 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部 1. https://jingyan.baidu.co ...

  2. PDF转换成Word,ppt转换成word

    pdf与word我没找到直接转换的方式,不过可以用间接方式嘛! pdf ==>picture ==>word!ppt转word的原理也是先把ppt转成图片,再把图片插入word! 先准备好 ...

  3. C#.net word excel powerpoint (ppt) 转换成 pdf 文件

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...

  4. 将ppt转换成PDF

    import sys import os import glob import win32com.client def convert(files, formatType = 32): powerpo ...

  5. word ppt excel文档转换成pdf

    1.把word文档转换成pdf (1).添加引用 using Microsoft.Office.Interop.Word; 添加引用 (2).转换方法 /// <summary> /// ...

  6. C# 将PowerPoint文件转换成PDF文件

    PowerPoint的优势在于对演示文档的操作上,而用PPT查看资料,反而会很麻烦.这时候,把PPT转换成PDF格式保存,再浏览,不失为一个好办法.在日常编程中和开发软件时,我们也有这样的需要.本文旨 ...

  7. Java中Office(word/ppt/excel)转换成HTML实现

    运行条件:JDK + jacob.jar + jacob.dll 1) 把jacob.dll在 JAVA_HOME\bin\ 和 JAVA_HOME\jre\bin\ 以及C:\WINDOWS\sys ...

  8. 如何用ABBYY把PDF转换成PPT

    在电子科技迅速发展的今天,文件格式转换并不是什么稀罕事,因为现在都是电子化办公,出现很多文件格式,但是不同的场合需要的格式不同,所以常常需要进行文件格式的转换.PDF转换成PPT也是众多文件格式转换中 ...

  9. PDF文件怎么转换成PPT

    在日常办公中大家都会发现PDF文件目前是比较常见的一种文件,有的时候大家会需要将PDF转换成PPT为了去更好的演示,毕竟PPT文件在演示方面具有着较好的特点,那如何将PDF文件转换成PPT文件呢,今天 ...

随机推荐

  1. Oracle 课程八之性能优化之Oracle SQL Trace

    一. SQL_TRACE 当SQL语句出现性能问题时,我们可以用SQL_TRACE来跟踪SQL的执行情况,通过跟踪,我们可以了解一条SQL或者PL/SQL包的运行情况,SQL_TRACE命令会将SQL ...

  2. Object类介绍

    一.Object类介绍

  3. ylbtech-SubwayNav(地铁线路导航)-数据库设计

    ylbtech-DatabaseDesgin:ylbtech-SubwayNav(地铁线路导航)-数据库设计 DatabaseName:SubwayNav(地铁线路导航) Type:线路导航 1.A, ...

  4. map用法详解

    转自:http://www.kuqin.com/cpluspluslib/20071231/3265.html Map是 STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在 ...

  5. xcode 怎么样在发布release版本的时候 不输出log

    我们平时在开发应用的时候,经常会用到 NSLog 来调试我们的程序,而随着项目越来越大,这些用于调试的日志输出就会变得很难管理. 发布正式版的时候一定要屏蔽掉所有后台输出,因为这些输出还是比较消耗系统 ...

  6. 【LeetCode 169】Majority Element

    Given an array of size n, find the majority element. The majority element is the element that appear ...

  7. 用javascript 面向对象制作坦克大战(二)

    2.   完善地图 我们的地图中有空地,墙,钢,草丛,水,总部等障碍物. 我们可以把这些全部设计为对象. 2.1  创建障碍物对象群       对象群保存各种地图上的对象,我们通过对象的属性来判断对 ...

  8. mysql 中的外键key值的详解

    如果Key是空的, 那么该列值的可以重复, 表示该列没有索引, 或者是一个非唯一的复合索引的非前导列2. 如果Key是PRI,  那么该列是主键的组成部分3. 如果Key是UNI,  那么该列是一个唯 ...

  9. PHP获取Cookie模拟登录

    关键字:CURL Cookie CURLOPT_COOKIEJAR CURLOPT_COOKIEFILE 模拟登录 PHP作者:方倍工作室原文:http://www.cnblogs.com/txw19 ...

  10. openstack分布式安装

    一. keystone安装笔记 初次接触openstack,在尝试过单机部署以后不是很满意,就开始着手分布式部署,主要是按照openstack官网上的安装教程来的,本人安装的是目前最新的 I 版. 以 ...