1、前端實現(xiàn)pdf文件在線預(yù)覽功能
方式一、pdf文件理論上可以在瀏覽器直接打開預(yù)覽但是需要打開新頁面。在僅僅是預(yù)覽pdf文件且UI要求不高的情況下可以直接通過a標簽href屬性實現(xiàn)預(yù)覽
<a href="文檔地址"></a>
方式二、通過jquery插件jquery.media.js實現(xiàn) 這個插件可以實現(xiàn)pdf預(yù)覽功能(包括其他各種媒體文件)但是對word等類型的文件無能為力。 實現(xiàn)方式: js代碼:
<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./public_assets/xuetangx/PDF/PlayerAPI_v1.0.6.pdf',
});
</script>
方式三、直接通過頁面內(nèi)嵌iframe
$("<iframe src='"+ this.previewUrl +"' width='100%' height='362px' frameborder='1'>").appendTo($(".video-handouts-preview"));
此外還可以在iframe標簽之間提供一個提示類似這樣
<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>
方式四、通過標簽嵌入內(nèi)容
<embed :src="previewUrl" type="application/pdf" width="100%" height="100%">
此標簽h5特性中包含四個屬性:高、寬、類型、預(yù)覽文件src! 與< iframe > < / iframe > 不同,這個標簽是自閉合的的,也就是說如果瀏覽器不支持PDF的嵌入,那么這個標簽的內(nèi)容什么都看不到!
方式五、標簽和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>
除方式二以外其他都是直接通過標簽將內(nèi)容引入頁面實現(xiàn)預(yù)覽
方式六、PDFObject
PDFObject實際上也是通過標簽實現(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)頁PDFObject.embed("index.pdf", "#pdf_viewer" );
} else {
location.href = "/canvas";
}</script></html>復(fù)制代碼
還可以通過以下代碼進行判斷是否支持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");
}
方式七、PDF.js
PDF.js可以實現(xiàn)在html下直接瀏覽pdf文檔,是一款開源的pdf文檔讀取解析插件,非常強大,能將PDF文件渲染成Canvas。PDF.js主要包含兩個庫文件,一個pdf.js和一個pdf.worker.js,一個負責(zé)API解析,一個負責(zé)核心解析。
2、word、xls、ppt文件在線預(yù)覽功能
word、ppt、xls文件實現(xiàn)在線預(yù)覽的方式比較簡單可以直接通過調(diào)用微軟的在線預(yù)覽功能實現(xiàn) (預(yù)覽前提:資源必須是公共可訪問的)
<iframe src='https://view.officeapps./op/view.aspx?src=http://storage./public_assets/xuetangx/PDF/1.xls' width='100%' height='100%' frameborder='1'></iframe>
src就是要實現(xiàn)預(yù)覽的文件地址 具體文檔看這微軟接口文檔
補充:google的文檔在線預(yù)覽實現(xiàn)同微軟(資源必須是公共可訪問的)
<iframe :src="'https://docs.google.com/viewer?url="fileurl"></iframe>
3、word文件
XDOC可以實現(xiàn)預(yù)覽以DataURI表示的DOC文檔,此外XDOC還可以實現(xiàn)文本、帶參數(shù)文本、html文本、json文本、公文等在線預(yù)覽,具體實現(xiàn)方法請看官方文檔
下面這種方式可以實現(xiàn)快速預(yù)覽word但是對文件使用的編輯器可能會有一些限制
<a href="http://www./xdoc?_func=to&_format=html&_cache=1&_xdoc=http://www./demo/demo.docx" target="_blank" rel="nofollow">XDOC</a>
4、excel文件
目前excel文件已經(jīng)有了類似pdf.js那樣的解析sheet.js
總結(jié):
1、免費純前端方式實現(xiàn)在線預(yù)覽word、excel、ppt最優(yōu)選擇微軟在線預(yù)覽(不可編輯)
2、利用后端將文件轉(zhuǎn)為圖片,前端以圖片形式預(yù)覽(可行方案)
3、購買在線預(yù)覽服務(wù)例如百度DOC文檔服務(wù)、永中、I DOC VIEW等