于實現文檔在線預覽的做法,之前文章提到了的兩種實現方式:
1、通過將文檔轉成圖片:詳見《文檔在線預覽(一)通過將txt、word、pdf轉成圖片實現在線預覽功能》;
2、將文檔轉成html:詳見《文檔在線預覽(二)word、pdf文件轉html以實現文檔在線預覽》;
其實除了這兩種實現方式之外之外,還有一種常見的做法就是在前端在通過相關的在線預覽組件來實現預覽
在網上的找了一圈實現方案,發現還挺多開源組件可以實現,整理了一下這些開源組件放在了下面的表格里,里面有一些是可以直接通過npm在vue中引入使用。
文檔格式 | 相關的開源組件 |
word(docx) | docx-preview、mammoth |
pdf.js、pdfobject.js、vue-pdf | |
excel | sheetjs js-xlsx、canvas-datagrid、handsontable、DataTables |
powerpoint(pptx) | pptxjs |
是一個 純前端的JavaScript庫,它的優點是可以后端就實現對 .docx 的文件進行在線預覽,但是缺點是 不支持.doc(劃重點)。
github地址:https://github.com/VolodymyrBaydalka/docxjs
demo示例
安裝:
npm install docx-preview -S
使用效果:
??Mammoth 原理是將 .docx 文檔并將其轉換為 HTML。 注意Mammoth 轉換過程中復雜樣式被忽,居中、首行縮進等,此外同樣也只能轉換.docx文檔。
github地址:https://github.com/mwilliamson/mammoth.js
安裝:
npm install mammoth
pdf.js是一款非常優秀的pdf解析工具,其實火狐瀏覽器內核自帶pdf預覽解析器就是pdf.js這個解析器,我們用火狐瀏覽器打開pdf文件并按F12打開控制臺可以看到源碼內容。
官網地址:http://mozilla.github.io/pdf.js
github地址:https://github.com/mozilla/pdf.js
demo示例
使用效果:
PDFObject.js - 將PDF嵌入到一個div內,而不是占據整個頁面,要求瀏覽器支持顯示PDF(主流瀏覽器都支持),如果瀏覽器不支持,也可通過配置PDF.js來實現
官網地址: https://pdfobject.com/
github地址:https://github.com/pipwerks/PDFObject
實現效果:
Vue-pdf是通過Vue下基礎基于 pdf.js 組件實現PDF文件的展示,操作和生成的組件。
github地址:https://github.com/FranckFreiburger/vue-pdf
demo示例
安裝:
npm install --save vue-pdf
實現效果:
iframe / object / embed 使用方法和效果都同理,即將 pdf 作為插件內嵌在這三個HTML標簽內,以下用 iframe 為例,效果就如同直接用鏈接打開 pdf 文件是一樣的,相當于一個新的頁面內嵌在當前頁面中。
<iframe style="width: 100%; height: 100%;" src="/static/xxx.pdf"></iframe>
實現效果:
js-xlsx是sheetJS出品的讀取和導出各種ecxel的工具庫,功能十分強大。
xlsx官方文檔:https://www.npmjs.com/package/xlsx
github倉庫: https://github.com/SheetJS/sheetjs
安裝:
npm install xlsx
js-xlsx可以用二進制流方式讀取得到整份excel表格對象
let workbook=XLSX.read(data, { type: "array" }); //表格對象
let sheetNames=workbook.SheetNames; //獲取到所有表格
let worksheet=workbook.Sheets[sheetNames[0]]; //取第一張表
獲取表格數據后再調用js-xlsx提供的方法,直接將表格數據轉換為html代碼,再將html代碼渲染到指定容器就完成了
let html=XLSX.utils.sheet_to_html(worksheet);
實現效果:
? 基于 canvas 來渲染表格,支持表格過濾、數據編輯、自定義操作菜單、大數據場景優化、主題樣式修改
github地址:https://github.com/TonyGermaneri/canvas-datagrid
demo示例
安裝:
npm install canvas-datagrid
handsontable基于 DOM 元素來渲染表格,功能強大,canvas-datagrid` 支持的功能它都支持,并且主題樣式擴展更方便
官網地址:https://handsontable.com/docs/7.1.0/tutorial-custom-build.html
github地址:https://github.com/handsontable/handsontable
文檔地址:https://handsontable.com/docs/javascript-data-grid
安裝:
npm install handsontable @handsontable/vue
Demo示例
實現效果:
基于Jquery 表格插件DataTables的一個表格插件,還在用Jquery 可以以考慮這個
官網地址:https://www.datatables.net
安裝:
官網下載地址,在你的項目中使用 DataTables,只需要引入三個個文件即可,jQuery庫,一個DataTables的核心js文件和一個DataTables的css文件。有的時候還需要DataTables樣式的一些資源。
<link href="DataTables/datatables.min.css" rel="stylesheet"/>
<script src="DataTables/datatables.min.js"></script>
使用方式:
$('#example').DataTable( {
data: data
} );
### 1、PPTXJS PPTXJS是jquery的一個插件,她的主要功能是實現pptx轉html,用于在線進行展示
官網地址:https://pptx.js.org/index.html
github地址:https://github.com/meshesha/PPTXjs
PPTXjs | Demos
使用示例:
<div id="slide-resolte-contaniner" ></div>
<script>
$("#slide-resolte-contaniner").pptxToHtml({
pptxFileUrl: "Sample_demo1.pptx",
slidesScale: "50%",
slideMode: false,
keyBoardShortCut: false
});
</script>
實現效果:
本文主要介紹了word、excel、pdf、ppt等文件純前端實現在線預覽的方式,具體實現可以是:
### 1、前端根據不同文件類型使用對應的在線預覽組件進行在線預覽。 前端通過判斷不同文件類型的使用對應的在線預覽組件進行在線預覽。 因為不同類型的在線預覽組件不一樣在使用時預覽界面會存在差異,如果需要做的完善一點 最好是把所有用到的組件都統一封裝的一個在線預覽的UI界面中。
從本文的測試情況來看前端實現預覽最好的效果還是PDF,不會出現一些文字錯亂和亂碼的問題,這樣能保留文件的一些樣式的效果,同時前端也只用支持一種文件格式的預覽,工作量也能大大降低。
以上就是使用js前端實現word、excel、pdf、ppt等文件在線預覽的方式的全部內容,感謝大家的閱讀!
了解同學們的專業學習情況,增強團隊協作能力,近日,金盾2201班舉行了以小組為單位的HTML網頁項目驗收。本次項目驗收特邀鄧旎、唐勇兩位老師擔任評委。
金盾特訓班作為我校以高薪就業為終極目標的特色班級,除了日常文化課學習之外,提升項目實戰經驗也成為了他們必不可少的日常操練項。
驗收現場
各小組以PPT講解結合網頁作品演示的形式,從想法構思、選定項目、作品功能實現等方面來展示團隊作品。每位同學輪流上臺講解,在操作演示中突顯實踐的重要性。
項目驗收考驗的是大家代碼知識的運用情況,同時還能提高表達能力及項目制作水平,為成為一名“準職業人”打好基礎。大家紛紛表示,雖然在過程中遇到了數不清的困難,但是并沒有因此而放棄,在老師的輔導和組員之間的互幫互助下,促使此次項目圓滿完成。
頒獎典禮
經評委現場評分,最終評選出團隊一、二、三等獎及優秀個人獎。
團隊一等獎
王涵、李嘉星、劉燦、段李可
團隊二等獎
姚宏源、周旺、駱鵬飛、凌海峰
團隊三等獎
潘虹、張雅婷、胡偉
優秀個人獎
羅浩智、付清、陳韜、殷明、莫藝清
此次項目驗收,充分展示了金盾班同學的理論水平、專業知識、語言表達與實踐操作能力,希望各位同學再接再厲,發揮個人潛能,展示出更加優秀的作品。
將畢業的應屆生,為畢業答辯做準備,還在熬夜做PPT?
領導通知交工作匯報PPT,找不到PPT模板,怎么辦?
給學生上網課,準備的PPT課件太丑了
......
相信這些場景,大部分人都遇到過。急需模板,卻不知道在哪找?
所以,這篇文章,給大家分享一個非常好用的模板網站。
PPT超級商店
http://ppt.sotary.com/web/wxapp/index.html
不同于其他的PPT模板網站,這個網站簡潔無套路,沒有其他復雜的資源,里面都是一些優質PPT模板,下載也很方便。
點擊自己挑選的PPT模板,進入頁面展示頁,會看到每一頁的模板的設計。滑到結尾,就會看到有一個下載的指示圖標,直接點擊就可以了下載了,免費,但是不可商用。
同樣,可以通過搜索關鍵詞,快速獲取你所需要的PPT模板。
1、模板不定時更新,涵蓋各種類型,適用于各種使用場景
包括答辯PPT、工作匯報PPT、商業計劃書、述職報告等等
2、PPT質量高
我下載了一份黑色商務風的PPT模板,頁面簡約,但也非常炫酷,挑幾頁給大家展示一下:
是不是很不錯呢?
3、免費下載無套路
網站里提供的所有資源都可以免費下載,沒有免費付費之分,不用糾結,挑選了一套合適的模板,但卻需要付錢的尷尬。
1、 PPT模板資源有限,只有PPT模板,類型單一
只提供PPT模板,沒有其他素材和工具
2、設計風格都比較簡約
3、不可商用
以上,經常需要PPT模板的朋友,一定要收藏這個網站呀~
福利:
關注@PPT進化論 ,私信回復關鍵詞【30 套】,即可獲取我收藏的優質職場類PPT模板資源了!
*請認真填寫需求信息,我們會在24小時內與您取得聯系。