# 前端實(shí)現(xiàn)在線(xiàn)預(yù)覽pdf、word、xls、ppt等文件


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等

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容