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

shengmeshi 2024-09-30 14:03:02 阅读 88

需求: 页面展示docx文件

使用插件:docx-preview.min.js,以及该插件依赖jszip.min.js

<code>1、jszip.min.js 地址:https://cdn.bootcdn.net/ajax/libs/jszip/3.10.0/jszip.min.js

2、docx-preview.min.js 地址: https://github.com/VolodymyrBaydalka/docxjs

//自测项目用了vue

3、vue.js地址:https://cdn.jsdelivr.net/npm/vue/dist/vue.js

插件使用实例

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">code>

<title></title>

</head>

<body>

<div id="app">code>

<input type="file" @change="upload">code>

<div ref="file"></div>code>

</div>

<script src="./jszip.min.js"></script>code>

<script src="./vue.js"></script>code>

<script src="./docx-preview.min.js" type="text/javascript"></script>code>

<script>

var app = new Vue({ -- -->

el: '#app',

data: {

file: null

},

mounted(){

this.getApi("./****.docx");//本地文档地址:./****.docx

},

methods: {

//1、通过input预加载展示文档

upload(e) {

this.file = e.target.files[0]

console.log('this.file=-======',this.file)

docx.renderAsync(this.file, this.$refs.file);

},

//2、直接请求本地文档

getApi(path){

let _that = this;

let xhr = new XMLHttpRequest();

xhr.open('GET', path, true);

xhr.responseType = 'blob';

xhr.onload = function (e) {

if (this.status == 200) {

//docx文档blob对象type类型值为:

//application/vnd.openxmlformats-officedocument.wordprocessingml.document

let blob = new Blob([this.response], { type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'});

// 使用blob对象进行操作

console.log('blob=====',blob)

docx.renderAsync(blob, _that.$refs.file);

}

};

xhr.send();

}

}

})

</script>

</body>

</html>



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。