日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

.NET實(shí)現(xiàn)在網(wǎng)頁(yè)中預(yù)覽Office文件的3個(gè)方法_.Net教程

編輯Tag賺U幣
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

推薦:asp.net中控制反轉(zhuǎn)怎么理解?
對(duì)IOC的解釋為:Inversion of control is a common characteristic of frameworks, so saying that these lightweight containers are special because they use inversion of control is like saying my car is special because it has wheels. 我想對(duì)這一概念執(zhí)行

 近日公司要搞一個(gè)日常的文檔管理的東東,可以上傳、下載各種文件,如果是office文件呢還必須得支持預(yù)覽功能,其他的都好說(shuō)但是唯獨(dú)office預(yù)覽功能比較麻煩,但是不能不做,廢話不多說(shuō)了一步步來(lái)吧。分析了下網(wǎng)易郵箱的文件預(yù)覽功能,他用的是微軟的組件,最早叫Office online,現(xiàn)在分開了叫Word online、Excel online ....等等,效果十分炫酷功能十分強(qiáng)大,但是查看了下對(duì)api的說(shuō)明發(fā)現(xiàn)對(duì)服務(wù)器的要求比較苛刻而且配置比較復(fù)雜不太適合。然后 又看了下騰訊用的是永中第三方組件,效果嘛自然比不上微軟的但是能用,綜合網(wǎng)上的一些資料大概也就那么幾種方式實(shí)現(xiàn)

1.使用Microsoft的Office組件將文件直接轉(zhuǎn)換為html文件(優(yōu)點(diǎn):代碼實(shí)現(xiàn)最簡(jiǎn)單,工作強(qiáng)度最小。缺點(diǎn):效果極差)

2.使用Microsoft的Office組件將文件轉(zhuǎn)換為PDF格式文件,然后再使用pdf2swf轉(zhuǎn)換為swf文件,也就是flash文件在使用FlexPaper展示出來(lái)(優(yōu)點(diǎn):預(yù)覽效果能接受,缺點(diǎn):代碼量大)

效果如圖:

.NET實(shí)現(xiàn)在網(wǎng)頁(yè)中預(yù)覽Office文件的3個(gè)方法 模板無(wú)憂

3. 使用Office online(優(yōu)點(diǎn):表現(xiàn)完美,缺點(diǎn):不適合中小企業(yè)應(yīng)用)

綜合考慮決定使用第二種方法,經(jīng)過(guò)次次波折終于可以使用,但是有個(gè)問(wèn)題至今沒有得到解決,調(diào)用Office組件的時(shí)候有時(shí)候會(huì)出現(xiàn)如下異常:

檢索 COM 類工廠中 CLSID 為 {000209FF-0000-0000-C000-000000000046} 的組件失敗,原因是出現(xiàn)以下錯(cuò)誤: 8000401a 因?yàn)榕渲脴?biāo)識(shí)不正確,系統(tǒng)無(wú)法開始服務(wù)器進(jìn)程。請(qǐng)檢查用戶名和密碼。 (異常來(lái)自 HRESULT:0x8000401A),查閱無(wú)數(shù)資料還是不能解決,最讓人不可接受的的是office文件必須標(biāo)標(biāo)準(zhǔn)準(zhǔn)毫無(wú)容錯(cuò)能力,當(dāng)轉(zhuǎn)換ppt文件時(shí)竟然會(huì)彈出轉(zhuǎn)換進(jìn)度框!!

好吧!那么我們改進(jìn)它。

使用ASPOSE+pdf2swf+FlexPaper

關(guān)于ASPOSE大家可以到官網(wǎng)了解,這是款商業(yè)收費(fèi)產(chǎn)品但是免費(fèi)也可以使用

1、引用dll

.NET實(shí)現(xiàn)在網(wǎng)頁(yè)中預(yù)覽Office文件的3個(gè)方法

2、編寫轉(zhuǎn)換幫助類

 

代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Aspose.Cells;
using Aspose.Words;
using Aspose.Slides;
using System.Text.RegularExpressions;
using System.IO;

 

namespace Souxuexiao.Common
{
    /// <summary>
    /// 第三方組件ASPOSE Office/WPS文件轉(zhuǎn)換
    /// Writer:Helen Joe
    /// Date:2014-09-24
    /// </summary>
    public class AsposeUtils
    {
        /// <summary>
        /// PFD轉(zhuǎn)換器位置
        /// </summary>
        private static string _EXEFILENAME = System.Web.HttpContext.Current != null
                ? System.Web.HttpContext.Current.Server.MapPath("/pdf2swf/pdf2swf.exe")
                : System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "\\pdf2swf\\pdf2swf.exe");

        #region 1.01 Wrod文檔轉(zhuǎn)換為PDF文件 +ConvertDocToPdF(string sourceFileName, string targetFileName)
        /// <summary>
        /// Wrod文檔轉(zhuǎn)換為PDF文件
        /// </summary>
        /// <param name="sourceFileName">需要轉(zhuǎn)換的Word全路徑</param>
        /// <param name="targetFileName">目標(biāo)文件全路徑</param>
        /// <returns>轉(zhuǎn)換是否成功</returns>
        public static bool ConvertDocToPdF(string sourceFileName, string targetFileName)
        {
            Souxuexiao.API.Logger.error(string.Format("Wrod文檔轉(zhuǎn)換為PDF文件:sourceFileName={0},targetFileName={1}", sourceFileName, targetFileName));
            try
            {
                using (System.IO.Stream stream = new System.IO.FileStream(sourceFileName, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite))
                {
                    Document doc = new Document(sourceFileName);
                    doc.Save(targetFileName, Aspose.Words.SaveFormat.Pdf);
                }
            }
            catch (Exception ex)
            {
                Souxuexiao.API.Logger.error(string.Format("Wrod文檔轉(zhuǎn)換為PDF文件執(zhí)行ConvertDocToPdF發(fā)生異常原因是:{0}",ex.Message));
            }
            return System.IO.File.Exists(targetFileName);
        }
        #endregion

分享:delphi選擇文件夾例子
所需單元 示例代碼

共6頁(yè)上一頁(yè)123456下一頁(yè)
來(lái)源:模板無(wú)憂//所屬分類:.Net教程/更新時(shí)間:2014-10-11
相關(guān).Net教程