jsp實現線上預覽pdf、word、xls、ppt等檔案
最近在做一個共享數字化平臺,一些所涉功能知識記錄一下。
、其他教程寫得太老了,可能到如今已經不再適用。
1、jsp實現pdf檔案線上預覽功能
方式一、pdf檔案理論上可以在瀏覽器直接開啟預覽但是需要開啟新頁面。在僅僅是預覽pdf檔案且UI要求不高的情況下可以直接通過a標籤href屬性實現預覽
<a href=”文件地址”></a>
方式二、通過jquery外掛jquery.media.js實現
這個外掛可以實現pdf預覽功能(包括其他各種媒體檔案)但是對word等型別的檔案無能為力。
實現方式:
js程式碼:
<script type=”text/javascript” src=”jquery-1.7.1.min.js”></script>
<script type=”text/javascript” src=”jquery.media.js”></script>
html結構:
<body>
<div id="handout_wrap_inner"></div>
</body>
呼叫方式:
$('#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 >
方式三、直接通過頁面內嵌iframe
$(<span class="hljs-string">"<iframe src='"</span>+ <span class="hljs-keyword">this</span>.previewUrl +<span class="hljs-string">"' width='100%' height='362px' frameborder='1'>"</span>).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>
方式四、通過<embed>標籤嵌入內容
<embed :src="previewUrl" type="application/pdf" width="100%" height="100%">
此標籤h5特性中包含四個屬性:高、寬、型別、預覽檔案src!
與< iframe > < / iframe > 不同,這個標籤是自閉合的的,也就是說如果瀏覽器不支援PDF的嵌入,那麼這個標籤的內容什麼都看不到!
方式五、<object>標籤和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實際上也是通過<embed>標籤實現的直接上程式碼
<!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嵌入到網頁
PDFObject.embed("index.pdf", "#pdf_viewer" );
} else {
location.href = "/canvas";
}
</script>
</html>
還可以通過以下程式碼進行判斷是否支援PDFObject預覽
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可以實現在html下直接瀏覽pdf文件,是一款開源的pdf文件讀取解析外掛,非常強大,能將PDF檔案渲染成Canvas。PDF.js主要包含兩個庫檔案,一個pdf.js和一個pdf.worker.js,一個負責API解析,一個負責核心解析。
2、word、xls、ppt檔案線上預覽功能
word、ppt、xls檔案實現線上預覽的方式比較簡單可以直接通過呼叫微軟的線上預覽功能實現 (預覽前提:資源必須是公共可訪問的)
<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就是要實現預覽的檔案地址
具體文件看這微軟介面文件
3、word檔案
XDOC可以實現預覽以DataURI表示的DOC文件,此外XDOC還可以實現文字、帶引數文字、html文字、json文字、公文等線上預覽,具體實現方法請看官方文件
下面這種方式可以實現快速預覽word但是對檔案使用的編輯器可能會有一些限制
<a href="http://www.xdocin.com/xdoc?_func=to&_format=html&_cache=1&_xdoc=http://www.xdocin.com/demo/demo.docx" target="_blank" rel="nofollow">XDOC</a>