当前位置: 首页 > news >正文

建德网站招标网与采购网

建德网站,招标网与采购网,做网站 需要注意什么,广州网站建设(信科分公司)需求 弹窗预览word文件,因浏览器无法直接根据blob路径直接预览word文件,所以需要利用插件实现。 解决方案 利用docx-preview实现word文件弹窗预览,以node版本16.21.3和docx-preview版本0.1.8为例 具体实现步骤 1、安装docx-preview插件 …

需求

弹窗预览word文件,因浏览器无法直接根据blob路径直接预览word文件,所以需要利用插件实现。

解决方案

利用docx-preview实现word文件弹窗预览,以node版本16.21.3和docx-preview版本0.1.8为例

具体实现步骤

1、安装docx-preview插件

npm install docx-preview@0.1.8 --save

2、创建弹窗组件,给一个空div绑定id为container

	<!-- 预览弹窗 --><div class="previewDialog"><el-dialog:visible.sync="dialogVisible"width="90%":fullscreen="dialogFullScreen"><div slot="title" class="dialog-header-title"><div class="title-text">文件预览</div></div><div id="container" style="width: 100%;"></div></el-dialog></div>

3、引入docx-preview和axios

import { renderAsync } from "docx-preview";

4、在data中初始化定义docxOptions配置项

data() {return {docxOptions: {className: "docx", // string:默认和文档样式类的类名/前缀inWrapper: true, // boolean:启用围绕文档内容的包装器渲染ignoreWidth: false, // boolean:禁用页面的渲染宽度ignoreHeight: false, // boolean:禁止渲染页面高度ignoreFonts: false, // boolean:禁用字体渲染breakPages: true, // boolean:在分页符上启用分页ignoreLastRenderedPageBreak: true, // boolean:在lastRenderedPageBreak 元素上禁用分页experimental: false, // boolean:启用实验功能(制表符停止计算)trimXmlDeclaration: true, // boolean:如果为true,解析前会从​​ xmlTemplate 文档中移除 xmlTemplate 声明// useBase64URL: false, // boolean:如果为true,图片、字体等会转为base 64 URL,否则使用URL.createObjectURL// useMathMLPolyfill: false, // boolean:包括用于 chrome、edge 等的 MathML polyfill。// showChanges: false, // boolean:启用文档更改的实验性渲染(插入/删除)debug: false // boolean:启用额外的日志记录},dialogVisible: false,};},

5、创建预览方法previewFile

	// 预览文件previewFile() {let timeId = "";document.getElementById("container") &&(document.getElementById("container").innerHTML = "");const options = {method: "get",headers: {Authorization: getToken()},url:process.env.VUE_APP_BASE_SERVER + `/stgFile/downloadFile/${timeId}`, // 可替换为你自己的后端下载地址responseType: "blob", // 二进制流params: {}};this.dialogVisible = true;axios(options).then(res => {if (!res.data) return this.$message.warning("当前没有可预览文件");const docData = new Blob([res.data]);let bodyContainer = document.getElementById("container");renderAsync(docData, // Blob | ArrayBuffer | Uint8Array, 可以是 JSZip.loadAsync 支持的任何类型bodyContainer, // HTMLElement 渲染文档内容的元素,null, // HTMLElement, 用于呈现文档样式、数字、字体的元素。如果为 null,则将使用 bodyContainer。this.docxOptions // 配置);}).catch(err => {return this.$message.error(err);});},

5、在所需地方调用预览方法

 <el-button primary class="file-preview" @click="previewFile">文件预览 <i class="el-icon-view"></i></el-button>

备注

以上则是预览word文件流的全部内容,有的同学在使用过程中可能会遇到安装docx-preview插件报错或者线上部署时报错,这个很大概率是因为你自己工程用到的node版本与docx-preview版本匹配不一致导致,可以去docx-preview官网查看对应版本,建议node16及以下版本尽量使用老一点的版本,16以上版本使用最新的docx-preview即可。不同版本的docx-preview使用方式有细微差异,可以查看官网各个版本的实例方法进行调试。

docx-preview官网地址:https://www.npmjs.com/package/docx-preview

http://www.yayakq.cn/news/826544/

相关文章:

  • 网站401错误陕西住房建设厅官方网站
  • 免费做团购网站的软件有哪些wordpress建社群
  • 网站扫二维码怎么做的中山发布最新通知
  • 山东seo网站推广cc在线代理
  • 网站到期续费通知嘉兴网站开发公司电话
  • 如何创建一个公司网站网站模板 古典
  • 天津市建设与管理局网站数字广东网络建设有限公司简介
  • 网站自己的建设一个淘宝客网站
  • 南宁江南区网站制作价格广东网络制作
  • 网站加入百度地图本地wordpress安装教程
  • 网站开发工程师是什么删除百度收录网站
  • 网站 测速度赣州人事人才网
  • 百度突然搜不到我的网站如何创建网页链接
  • 小学校园门户网站建设百度发布
  • 本地江苏网站建设wordpress怎么做网盘收索
  • 网站建设?首选百川互动国外导航网站程序
  • 网站制作哪家专业建筑总包二级资质
  • 昆明网站建设价格低wap网站价格
  • 网站建设 坚持实用原则商标在线注册平台
  • 上海网站建设哪个好网站建设爫金手指科捷15
  • 网站需求分析的重要wordpress灯箱图片
  • 江苏林润建设工程有限公司网站网站建设.c
  • 自助建站平台软件快速开发平台
  • 哈尔滨有网站的公司网站后台用esayui做
  • 网站建设宣传册内容文档做淘宝客网站性质
  • apache 配置php网站网站备案期间可以做推广吗
  • 韩国 网站 域名树莓派 做网站
  • 平台网站建设制作清流县建设局网站
  • 沈阳网站优化推广方案南昌seo优化公司
  • 网站搜索引擎优化网站怎么做才可以做评价