PDF文檔在線(xiàn)預(yù)覽功能
方式一: 通過(guò)a標(biāo)簽href屬性實(shí)現(xiàn)
pdf文件理論上可以在瀏覽器直接打開(kāi)預(yù)覽但是需要打開(kāi)新頁(yè)面。在僅僅是預(yù)覽pdf文件且UI要求不高的情況下可以直接通過(guò)a標(biāo)簽href屬性實(shí)現(xiàn)預(yù)覽
<a href="文檔地址"></a>
方式二: 通過(guò)jquery插件jquery.media.js實(shí)現(xiàn)
這個(gè)插件可以實(shí)現(xiàn)pdf預(yù)覽功能(包括其他各種媒體文件)但是對(duì)word等類(lèi)型的文件無(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>
方式三: 直接通過(guò)頁(yè)面內(nèi)嵌iframe
$("<iframe src='"+ this.previewUrl +"' width='100%' height='362px' frameborder='1'>").appendTo($(".video-handouts-preview"));此外還可以在iframe標(biāo)簽之間提供一個(gè)提示類(lèi)似這樣 <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>
方式四: 通過(guò)標(biāo)簽嵌入內(nèi)容
<embed :src="previewUrl" type="application/pdf" width="100%" height="100%">此標(biāo)簽h5特性中包含四個(gè)屬性:高、寬、類(lèi)型、預(yù)覽文件src!與< iframe > < / iframe > 不同,這個(gè)標(biāo)簽是自閉合的的,也就是說(shuō)如果瀏覽器不支持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í)際上也是通過(guò)標(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"; } // 還可以通過(guò)以下代碼進(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文檔,是一款開(kāi)源的pdf文檔讀取解析插件,非常強(qiáng)大,能將PDF文件渲染成Canvas。PDF.js主要包含兩個(gè)庫(kù)文件,一個(gè)pdf.js和一個(gè)pdf.worker.js,一個(gè)負(fù)責(zé)API解析,一個(gè)負(fù)責(zé)核心解析。
Office文檔在線(xiàn)預(yù)覽功能
word、ppt、xls文件實(shí)現(xiàn)在線(xiàn)預(yù)覽的方式比較簡(jiǎn)單可以直接通過(guò)調(diào)用微軟的在線(xiàn)預(yù)覽功能實(shí)現(xiàn) (預(yù)覽前提:資源必須是公共可訪(fǎng)問(wèn)的)
<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的文檔在線(xiàn)預(yù)覽實(shí)現(xiàn)同微軟(資源必須是公共可訪(fǎng)問(wè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文本、公文等在線(xiàn)預(yù)覽,具體實(shí)現(xiàn)方法請(qǐng)看官方文檔下面這種方式可以實(shí)現(xiàn)快速預(yù)覽word但是對(duì)文件使用的編輯器可能會(huì)有一些限制
<a target="_blank" rel="nofollow">XDOC</a>
excel文件
目前excel文件已經(jīng)有了類(lèi)似pdf.js那樣的解析sheet.js
總結(jié)
1、免費(fèi)純前端方式實(shí)現(xiàn)在線(xiàn)預(yù)覽word、excel、ppt最優(yōu)選擇微軟在線(xiàn)預(yù)覽(不可編輯)
2、利用后端將文件轉(zhuǎn)為圖片,前端以圖片形式預(yù)覽(可行方案)
3、購(gòu)買(mǎi)在線(xiàn)預(yù)覽服務(wù)例如百度DOC文檔服務(wù)、永中、I DOC VIEW等