1. 程式人生 > >Asp.net MVC 利用(aspose+pdfobject.js) 實現線上預覽word、excel、ppt、pdf檔案

Asp.net MVC 利用(aspose+pdfobject.js) 實現線上預覽word、excel、ppt、pdf檔案

線上預覽word、excel、ppt利用aspose動態生成html

主要程式碼

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.Save(saveDoc, 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;
}

線上預覽pdf利用pdfobject.js生成(aspose也可以做到,但效果不理想)

主要程式碼

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;
}
效果圖

預覽Word


預覽excel


預覽ppt


預覽pdf


原始碼下載