#region
- VS2010版本以及以上版本源码下载地址:http://download.csdn.net/download/u012949335/10231812
- VS2012版本以及以上版本源码下载地址:http://download.csdn.net/download/u012949335/10232057
private bool PdfToHtml(string fileName, string tempFile, string saveDoc) { //---------------------读html模板页面到stringbuilder对象里---- StringBuilder htmltext = new StringBuilder(); using (StreamReader sr = new StreamReader(tempFile)) //模板页路径 { String line; while ((line = sr.ReadLine()) != null) { htmltext.Append(line); } sr.Close(); } fileName = fileName.Replace("\\", "/"); //----------替换htm里的标记为你想加的内容 htmltext.Replace("$PDFFILEPATH", fileName); //----------生成htm文件------------------―― using (StreamWriter sw = new StreamWriter(saveDoc, false, System.Text.Encoding.GetEncoding("utf-8"))) //保存地址 { sw.WriteLine(htmltext); sw.Flush(); sw.Close(); } return true; } private bool OfficeDocumentToHtml(string sourceDoc, string saveDoc) { bool result = false; //获取文件扩展名 string docExtendName = System.IO.Path.GetExtension(sourceDoc).ToLower(); switch (docExtendName) { case ".doc": case ".docx": Aspose.Words.Document doc = new Aspose.Words.Document(sourceDoc); doc.Save(saveDoc, Aspose.Words.SaveFormat.Html); result = true; break; case ".xls": case ".xlsx": Workbook workbook = new Workbook(sourceDoc); //workbook.Open(sourceDoc); //workbook.Save(saveDoc, FileFormatType.AsposePdf); workbook.Save(saveDoc, Aspose.Cells.SaveFormat.Html); result = true; break; case ".ppt": case ".pptx": //templateFile = templateFile.Replace("/", "\\"); //string templateFile = sourceDoc; //templateFile = templateFile.Replace("/", "\\"); PresentationEx pres = new PresentationEx(sourceDoc); pres.Save(saveDoc, Aspose.Slides.Export.SaveFormat.Html); result = true; break; default: break; } return result; } #endregion [HttpGet] public string CourseViewOnLine(string fileName) { //DataTable dtlist = new DataTable(); //dtlist.Columns.Add("TempDocHtml", typeof(string)); string json = ""; string fileDire = "../Files"; string sourceDoc = Path.Combine(fileDire, fileName); string saveDoc = ""; string docExtendName = System.IO.Path.GetExtension(sourceDoc).ToLower(); bool result = false; if (docExtendName == ".pdf") { //pdf模板文件 string tempFile = Path.Combine(fileDire, "temppdf.html"); saveDoc = Path.Combine(fileDire, "viewFiles/onlinepdf.html"); result = PdfToHtml( sourceDoc, System.Web.HttpContext.Current.Server.MapPath(tempFile), System.Web.HttpContext.Current.Server.MapPath(saveDoc)); } else { saveDoc = Path.Combine(fileDire, "viewFiles/onlineview.html"); result = OfficeDocumentToHtml( System.Web.HttpContext.Current.Server.MapPath(sourceDoc), System.Web.HttpContext.Current.Server.MapPath(saveDoc)); } if (result) { json = "{\"TempDocHtml\":\"" + saveDoc.Replace("\\","/") + "\"}"; //dtlist.Rows.Add(saveDoc); } return json; }
$(function () { SexyLightbox.initialize({ color: 'white' }); }); var viewDoc = function (fileName) { showLoading("body", "正在生成预览"); //生成html文件 $.ajax({ url: "CourseViewOnLine?fileName=" + fileName, type: "GET", dataType: "json", success: function (data) { closeLoading(); //alert(JSON.stringify(data)); //alert(data[0].TempDocHtml); var diag = new Dialog(); diag.Width = 10000; diag.Height = 6000; diag.Title = "内容页为外部连接的窗口"; diag.URL = data.TempDocHtml + "?ver=" + Math.random() * 10; diag.show(); //$("#hidePopupDialog").attr('href', '' + data[0].TempDocHtml + '?TB_iframe=true&height=450&width=920'); //$("#hidePopupDialog").click(); }, error: function () { closeLoading(); alert('生成失败'); } }); } // 加载遮罩 var showLoading = function (elementTag, message) { var msg = message ? message : "加载数据,请稍候..."; $("<div class=\"datagrid-mask\"></div>").css({ display: "block", width: "100%", height: $(elementTag).height() }).appendTo(elementTag); $("<div class=\"datagrid-mask-msg\"></div>") .html(msg) .appendTo(elementTag).css({ display: "block", left: "30%", top: ($(elementTag).height() - 45) / 2 }); }; //关闭遮罩 var closeLoading = function () { $('.datagrid-mask').remove(); $('.datagrid-mask-msg').remove(); };
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %> <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> IndexOnline </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <h2>IndexOnline</h2> <script src="../Scripts/jquery-1.8.2.js" type="text/javascript"></script> <script src="../Scripts/Js/pdfobject/pdfobject.js" type="text/javascript"></script> <script src="../Scripts/Js/index.js" type="text/javascript"></script> <script src="../Scripts/Js/PopupDialog/jquery.easing.1.3.js" type="text/javascript"></script> <script src="../Scripts/Js/PopupDialog/sexylightbox.v2.3.jquery.min.js" type="text/javascript"></script> <script src="../Scripts/Js/zDialog/zDrag.js" type="text/javascript"></script> <script src="../Scripts/Js/zDialog/zDialog.js" type="text/javascript"></script> <a class="docViewDownload" onclick="viewDoc('wordtest1.doc');">Word 预 览 </a> <a class="docViewDownload" onclick="viewDoc('exceltest.xls');">Excel 预 览 </a> <a class="docViewDownload" onclick="viewDoc('ppttest.pptx');">PPT 预 览 </a> <a class="docViewDownload" onclick="viewDoc('pdftest.pdf');">PDF 预 览 </a> </asp:Content>