1. 程式人生 > >前端實現線上預覽pdf、word、xls、ppt等檔案

前端實現線上預覽pdf、word、xls、ppt等檔案

1、前端實現pdf檔案線上預覽功能
方式一: 通過a標籤href屬性實現


pdf檔案理論上可以在瀏覽器直接開啟預覽但是需要開啟新頁面。在僅僅是預覽pdf檔案且UI要求不高的情況下可以直接通過a標籤href屬性實現預覽

<a href="文件地址"></a>


方式二: 通過jquery外掛jquery.media.js實現
這個外掛可以實現pdf預覽功能(包括其他各種媒體檔案)但是對word等型別的檔案無能為力。

實現方式:    

<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>
呼叫方式:
<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>


方式三: 直接通過頁面內嵌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>


方式四: 通過標籤嵌入內容

<embed :src="previewUrl" type="application/pdf" width="100%" height="100%">


此標籤h5特性中包含四個屬性:高、寬、型別、預覽檔案src!
與< iframe > < / iframe > 不同,這個標籤是自閉合的的,也就是說如果瀏覽器不支援PDF的嵌入,那麼這個標籤的內容什麼都看不到!
方式五: 標籤和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實際上也是通過標籤實現的直接上程式碼

<!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";
    }
    
    // 還可以通過以下程式碼進行判斷是否支援PDFObject預覽
    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>