網(wǎng)站實現(xiàn)WORD文檔、PDF文檔在線預(yù)覽:設(shè)計總體思路[轉(zhuǎn)載]
近兩年出現(xiàn)了許多以“經(jīng)驗交易”為核心的文檔平臺,如豆丁網(wǎng)、百度文庫、星期八等網(wǎng)站。這些網(wǎng)站將文檔(知識)存放在網(wǎng)站(平臺)上,供用戶瀏覽、討論、下載,配以良好的積分體系和金錢激勵(運營),完美的協(xié)調(diào)好知識分享與知識傳播之間的微妙關(guān)系。這樣即有Web2.0的用戶互動,也有Web3.0的價值分配,對社會也是非常好的資源重用,是非常棒的一種運營模式。
從技術(shù)層面講,這類網(wǎng)站的創(chuàng)新主要有文檔預(yù)覽、知識商城和SNS三個塊。今年初公司也決定在公司內(nèi)部引入這種模式,以實現(xiàn)公司內(nèi)部文檔特別是售前方案的分享,很榮幸,我被安排為此項目的技術(shù)經(jīng)理,也專門研究了文檔在線預(yù)覽的技術(shù)。如今項目已經(jīng)上線將近百天,也是時候整理一下思路,這篇博客主要就是分析一些文檔在線預(yù)覽的技術(shù)細(xì)節(jié),其實網(wǎng)上已經(jīng)有很多類似的文章,但大多沒有說得很清楚,也比較零亂,所以我想整理一個完整的文章來。文章內(nèi)容將會涉及:總體思路、預(yù)覽實現(xiàn)細(xì)節(jié)、縮略圖實現(xiàn)、百度閱讀器使用等。
文檔預(yù)覽即文檔以flash的形式在網(wǎng)頁上展示,所以要解決兩個問題:以什么格式展示flash、文檔如何轉(zhuǎn)化為符合格式的flash。
展示flash有兩種方式,一種是直接生成好一個完整的flash展示出來,一種是用一個播放器來播放另外一個文檔flash。第一種方式可以用SWFTools的工具直接將pdf轉(zhuǎn)化成一個整體的flash展示,但這種方式的flash較大,且不容易控制,故用得較少。第二種方式是重點,首先需要了解的是一個開源的flexpaper播放器,它可以播放一幀一頁的flash;在flexpaper的基礎(chǔ)上,如果遇到大文檔則會出現(xiàn)速度和性能的問題,這個時候需要像百度文庫、豆丁一樣修改flexpaper,讓它支持一次僅讀取指定頁數(shù)的flash;如果文檔安全級別較高,不允許下載查看,則需要給flexpaper加上加密解密算法;如果需要登錄用戶才能查看,則要讓flexpaper有登錄UI。
轉(zhuǎn)化文檔為flash的思路有一條,但有多種實現(xiàn)方式。一般文檔需要先轉(zhuǎn)化為pdf,再從pdf轉(zhuǎn)化為flash。轉(zhuǎn)化為pdf的方法有很多,例如使用虛擬打印機(jī)、使用MicrosoftOffice的API、使用OpenOffice轉(zhuǎn)化等,不過轉(zhuǎn)化的過程中,可能由于文檔有誤、損壞、加密等原因造成轉(zhuǎn)化失敗。從pdf轉(zhuǎn)化為flash就簡單了許多,直接使用SWFTools的pdf2swf即可實現(xiàn)多種方式的轉(zhuǎn)化。
下圖是文檔轉(zhuǎn)化到swf的一個流程,其中type是文檔的一個狀態(tài)標(biāo)識(0表示未處理過的文檔,1表示已生成pdf,2表示已生成flash,-1表示不受支持的文檔格式,-2表示轉(zhuǎn)化為pdf失敗,-3表示轉(zhuǎn)化為flash失敗)

來自: 博客園
思為網(wǎng)絡(luò)騰訊企業(yè)微博,請關(guān)注我們:
現(xiàn)在有兩個技術(shù)難點需要解決: 1,防拷屏 2,flexpaper插件播放過程中,IE的臨時文件下的文件如何處理,直接把臨時文件下的.swf文件拷貝出來,不就直接可以看了嗎? 也是這兩個問題。 qq:827773101