/// <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.msoFalse, MsoTriState.msoFalse, 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.msoFalse, MsoTriState.msoCTrue);
pptFile.SaveAs(target.ToString(), PpSaveAsFileType.ppSaveAsHTML, MsoTriState.msoCTrue);
}
}
HttpContext.Current.Response.Redirect(realPath);
}
finally
{
if (pptFile != null)
{
pptFile.Close();
}
ac.Quit();
GC.Collect(); // 清理内存
}
}
参考文档:https://msdn.microsoft.com/en-us/library/microsoft.office.interop.powerpoint.presentations.open2007(v=office.14).aspx#