PDF文檔在線預(yù)覽功能
方式一: 通過a標(biāo)簽href屬性實(shí)現(xiàn)
pdf文件理論上可以在瀏覽器直接打開預(yù)覽但是需要打開新頁(yè)面冤寿。在僅僅是預(yù)覽pdf文件且UI要求不高的情況下可以直接通過a標(biāo)簽href屬性實(shí)現(xiàn)預(yù)覽
<a href="文檔地址"></a>
方式二: 通過jquery插件jquery.media.js實(shí)現(xiàn)
這個(gè)插件可以實(shí)現(xiàn)pdf預(yù)覽功能(包括其他各種媒體文件)但是對(duì)word等類型的文件無(wú)能為力歹苦。
實(shí)現(xiàn)方式:
<script type="text/javascript" src="jquery-1.7.1.min.js"></script> <script type="text/javascript" src="jquery.media.js"></script>html結(jié)構(gòu): <body> <div id="handout_wrap_inner"></div> </body>調(diào)用方式:<script type="text/javascript"> $('#handout_wrap_inner').media({ width: '100%', height: '100%', autoplay: true, src:'http://storage.xuetangx.com/public_assets/xuetangx/PDF/PlayerAPI_v1.0.6.pdf', }); </script>
方式三: 直接通過頁(yè)面內(nèi)嵌iframe
$("<iframe src='"+ this.previewUrl +"' width='100%' height='362px' frameborder='1'>").appendTo($(".video-handouts-preview"));此外還可以在iframe標(biāo)簽之間提供一個(gè)提示類似這樣 <iframe :src="previewUrl" width="100%" height="100%">This browser does not support PDFs. Please download the PDF to view it: <a :href="previewUrl">Download PDF</a></iframe>
方式四: 通過標(biāo)簽嵌入內(nèi)容
<embed :src="previewUrl" type="application/pdf" width="100%" height="100%">此標(biāo)簽h5特性中包含四個(gè)屬性:高、寬督怜、類型殴瘦、預(yù)覽文件src!與< iframe > < / iframe > 不同号杠,這個(gè)標(biāo)簽是自閉合的的蚪腋,也就是說如果瀏覽器不支持PDF的嵌入,那么這個(gè)標(biāo)簽的內(nèi)容什么都看不到姨蟋!
方式五: 標(biāo)簽和iframe使用差別較小
<object :src="previewUrl" width="100%" height="100%">This browser does not support PDFs. Please download the PDF to view it: <a :href="previewUrl">Download PDF</a></object>
方式六: PDFObject
PDFObject實(shí)際上也是通過標(biāo)簽實(shí)現(xiàn)的直接上代碼
<!DOCTYPE html><html><head> <title>Show PDF</title> <meta charset="utf-8" /> <script type="text/javascript" src='pdfobject.min.js'></script> <style type="text/css"> html,body,#pdf_viewer{ width: 100%; height: 100%; margin: 0; padding: 0; } </style></head><body> <div id="pdf_viewer"></div></body><script type="text/javascript"> if(PDFObject.supportsPDFs){ // PDF嵌入到網(wǎng)頁(yè) PDFObject.embed("index.pdf", "#pdf_viewer" ); } else { location.href = "/canvas"; } // 還可以通過以下代碼進(jìn)行判斷是否支持PDFObject預(yù)覽 if(PDFObject.supportsPDFs){ console.log("Yay, this browser supports inline PDFs."); } else { console.log("Boo, inline PDFs are not supported by this browser"); }</script></html>
方式七: PDF.js
PDF.js可以實(shí)現(xiàn)在html下直接瀏覽pdf文檔辣吃,是一款開源的pdf文檔讀取解析插件,非常強(qiáng)大芬探,能將PDF文件渲染成Canvas神得。PDF.js主要包含兩個(gè)庫(kù)文件,一個(gè)pdf.js和一個(gè)pdf.worker.js偷仿,一個(gè)負(fù)責(zé)API解析哩簿,一個(gè)負(fù)責(zé)核心解析宵蕉。
Office文檔在線預(yù)覽功能
word、ppt节榜、xls文件實(shí)現(xiàn)在線預(yù)覽的方式比較簡(jiǎn)單可以直接通過調(diào)用微軟的在線預(yù)覽功能實(shí)現(xiàn) (預(yù)覽前提:資源必須是公共可訪問的)
<iframe src='https://view.officeapps.live.com/op/view.aspx?src=http://storage.xuetangx.com/public_assets/xuetangx/PDF/1.xls' width='100%' height='100%' frameborder='1'></iframe> /*src就是要實(shí)現(xiàn)預(yù)覽的文件地址*//*具體文檔看這微軟接口文檔*/ /*補(bǔ)充:google的文檔在線預(yù)覽實(shí)現(xiàn)同微軟(資源必須是公共可訪問的)*/<iframe :src="'https://docs.google.com/viewer?url="fileurl"></iframe>
word文件
XDOC可以實(shí)現(xiàn)預(yù)覽以DataURI表示的DOC文檔羡玛,此外XDOC還可以實(shí)現(xiàn)文本、帶參數(shù)文本宗苍、html文本稼稿、json文本、公文等在線預(yù)覽讳窟,具體實(shí)現(xiàn)方法請(qǐng)看官方文檔下面這種方式可以實(shí)現(xiàn)快速預(yù)覽word但是對(duì)文件使用的編輯器可能會(huì)有一些限制
<a target="_blank" rel="nofollow">XDOC</a>
excel文件
目前excel文件已經(jīng)有了類似pdf.js那樣的解析sheet.js
總結(jié)
1让歼、免費(fèi)純前端方式實(shí)現(xiàn)在線預(yù)覽word、excel丽啡、ppt最優(yōu)選擇微軟在線預(yù)覽(不可編輯)
2谋右、利用后端將文件轉(zhuǎn)為圖片,前端以圖片形式預(yù)覽(可行方案)
3补箍、購(gòu)買在線預(yù)覽服務(wù)例如百度DOC文檔服務(wù)改执、永中、I DOC VIEW等