js 前端页面页面展示docx文件【插件docx-preview】

打印 上一主题 下一主题

主题 879|帖子 879|积分 2637

需求: 页面展示docx文件

利用插件:docx-preview.min.js,以及该插件依赖jszip.min.js
  1. 1、jszip.min.js 地址:https://cdn.bootcdn.net/ajax/libs/jszip/3.10.0/jszip.min.js
  2. 2、docx-preview.min.js 地址: https://github.com/VolodymyrBaydalka/docxjs
  3. //自测项目用了vue
  4. 3、vue.js地址:https://cdn.jsdelivr.net/npm/vue/dist/vue.js
复制代码
插件利用实例

  1. <!DOCTYPE html>
  2. <html>
  3.         <head>
  4.                 <meta charset="utf-8">
  5.                 <title></title>
  6.         </head>
  7.         <body>
  8.         <div id="app">
  9.            <input type="file" @change="upload">
  10.            <div ref="file"></div>
  11.         </div>
  12.         <script src="./jszip.min.js"></script>
  13.         <script src="./vue.js"></script>
  14.         <script src="./docx-preview.min.js" type="text/javascript"></script>
  15. <script>
  16.     var app = new Vue({
  17.         el: '#app',
  18.         data: {
  19.             file: null
  20.         },
  21.                 mounted(){
  22.                         this.getApi("./****.docx");//本地文档地址:./****.docx
  23.                 },
  24.         methods: {
  25.                 //1、通过input预加载展示文档
  26.             upload(e) {
  27.                 this.file = e.target.files[0]
  28.                                 console.log('this.file=-======',this.file)
  29.                 docx.renderAsync(this.file, this.$refs.file);
  30.             },
  31.             //2、直接请求本地文档
  32.                         getApi(path){
  33.                                 let _that = this;
  34.                                 let xhr = new XMLHttpRequest();
  35.                                 xhr.open('GET', path, true);
  36.                                 xhr.responseType = 'blob';
  37.                                 xhr.onload = function (e) {
  38.                                   if (this.status == 200) {
  39.                                           //docx文档blob对象type类型值为:
  40.                                           //application/vnd.openxmlformats-officedocument.wordprocessingml.document
  41.                                     let blob = new Blob([this.response], {type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'});
  42.                                   
  43.                                     // 使用blob对象进行操作
  44.                                                 console.log('blob=====',blob)
  45.                                                 docx.renderAsync(blob, _that.$refs.file);
  46.                                   }
  47.                                 };
  48.                                 xhr.send();
  49.                         }
  50.         }
  51.     })
  52. </script>
  53. </body>
  54. </html>
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

伤心客

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表