之前一般做项目进行文件浏览的时候基本都是用的window.open+url的形式打开文件,进行浏览操作的,但是这种打开方式只能够在线浏览如jpg、png、pdf这类文件,对于文档类型docx这种则是用下载的方式打开的。这次甲方爸爸不想要下载了,于是就来使docx-preview这个在线预览组件了。(这个插件只能够实现docx后缀的文件,doc文件打不开滴)

1.下载插件

npm i docx-preview --saveoryarn add docx-preview

2.导入

import { renderAsync } from 'docx-preview';//一般用这种形式就行了
let docx = requie('docx-preview');//我是vue3项目 报错require不行 就用的下边这种了
let docx = import.meta.glob('docx-preview');

3.使用组件

如图有两个文件,设计点击时传送文件file 得到如下数据

因为之前上传时已经限定了上传文件格式,所以通过fileType判断,是图片文件还是docx文档文件,图片文件则直接传url浏览,文档文件则需处理,选择的是将文件通过url地址换成以下这种形式进行操作

要渲染的组件:

 <div ref="childRef" class="childRef"></div>

渲染语法:

function previewfile(item) {if (item.fileType == '.docx') {nextTick(() => {fetch(item.filePath).then((response) => {let docData = response.blob(); //将文件转换成bolb形式//选择要渲染的元素let childRef = document.getElementsByClassName('childRef');//用docx-preview渲染renderAsync(docData, childRef[0]).then((res) => {console.log('res---->', res);});}).catch((error) => {console.log(error);});});} else {ImageUrl.value = toRaw(item).filePath;}
}

实现结果

这个组件渲染出来有自带的样式,自己修改修改样式就行了


更新一下关于样式方面的问题:

文档以弹窗形式出现组件代码如下

<el-dialog v-model="dialogVisible" class="dialogLarge" append-to-body :destroy-on-close="true">//此处是弹窗名称<template #header><div class="dialogHeader"><div>预览</div></div></template>//此处是预览图片的Img组件<imgw-full:src="dialogImageUrl"alt="Preview Image"style="height: auto; width: 100%"v-show="dialogImageUrl"/>//此处是用于渲染docx文档的div<div ref="childRef" class="childRef"></div>
</el-dialog>

生成效果如图:

这个组件会自动生成docx-wrapper的div盒子,有自带的样式

1.修改.docx-wrapper{background:white}去除灰边

2..docx-wrapper>section.docx{box-shadow:none}去除阴影效果

屏蔽或者用!important设置section.docx自带的高度宽度等属性,得到符合UI要求的样子

//vue3使用:deep(){}的形式进行样式穿透
//vue2是::v-deep或者/deep/的形式进行样式穿透:deep(.docx-wrapper) {background-color: #fff;padding: 0;
}
:deep(.docx-wrapper > section.docx) {width: 100% !important;padding: 0rem !important;min-height: auto !important;box-shadow: none;margin-bottom: 0;
}

vue docx-preview实现docx文件在线预览相关推荐

  1. 前端实现docx、pdf格式文件在线预览

    介绍 在业务中,如果遇到文档管理类的功能,会出现需要在线预览的业务需求,本文主要是通过第三方库来实现文档预览功能,并将其封装成preview组件 docx docx的实现需要使用docx-previe ...

  2. 文件在线预览doc,docx转换pdf(一)

    文件在线预览doc,docx转换pdf(一) 前言 文档转换是一个是一块硬骨头,但是也是必不可少的,我们正好做的知识库产品中,也面临着同样的问题,文档转换,精准的全文搜索,知识的转换率,是知识库产品的 ...

  3. vue 实现pdf文件在线预览

    PDF文件在线预览的功能相信大家都是有遇到过的,这边有两种实现方法,大家可以借鉴参考下 第一种,使用vue-pdf 安装 npm install --save vue-pdf 页面代码 <tem ...

  4. doc文件在线预览 vue_跨平台(uniapp)文件在线预览解决方案

    一.前言 之前写过一篇文章关于上传目录文件:uni-app系统目录文件上传(非只图片和视频)解决方案,这次来解决文件预览问题. uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者 ...

  5. 手把手教你用 Java 实现word、excel、ppt、txt等办公文件在线预览功能!

    如何用 Java 实现word.excel.ppt.txt等办公文件在线预览功能?本文告诉你答案! java 实现办公文件在线预览功能是一个大家在工作中也许会遇到的需求,网上些公司专门提供这样的服务, ...

  6. 基于SpringBoot的文件在线预览神器,支持99%的文件在线预览

    kkFileView简介 kkFileView可以用来搭建文件在线预览服务,在Github上已有5.7k+Star.该项目使用流行的SpringBoot搭建,易上手和部署,基本支持主流办公文档的在线预 ...

  7. 跨平台(uni-app)文件在线预览解决方案

    1024刚过,也祝愿各位码友在今后生活中,身体健康,事事顺心,再无Bug. 一.前言 之前写过一篇文章关于上传目录文件:uni-app系统目录文件上传(非只图片和视频)解决方案,这次来解决文件预览问题 ...

  8. Spring Boot 实现万能文件在线预览-开源学习一

    Spring Boot 实现万能文件在线预览-开源学习一 1. 项目特性 支持word excel ppt,pdf等办公文档 支持txt,java,php,py,md,js,css等所有纯文本 支持z ...

  9. word、excel、ppt 办公文件 在线预览

    如果想要免费的,可以用 openoffice,实现原理就是: 通过第三方工具openoffice,将word.excel.ppt.txt等文件转换为pdf文件流:当然如果装了Adobe Reader ...

  10. kkfileview v2.0 发布,文件在线预览项目方案

    kkfileview文件在线预览 此项目为文件文档在线预览项目解决方案,项目使用流行的spring boot搭建,易上手和部署,部署好后可以独立提供预览服务,使用http接口访问,不需要和应用集成,具 ...

最新文章

  1. java项目中使用重定向返回字符串
  2. golang println与printf区别
  3. P4597 序列sequence
  4. 在tomcat新建html页面,仅将HTML,CSS网页部署到Tomcat(示例代码)
  5. 高并发02_同步锁的一些题目
  6. 快速沃尔什变换(FWT)
  7. python元胞转list_[Python练习向] 简易元胞自动机框架
  8. php大马源码 手机网页,php大马源码:【百家号】脸书百科,分析 PHP大马-php_mof SHELL Web程序...
  9. android 表情删除,微信8.0版本为什么删除30多个表情?旧表情删除原因说明[多图]...
  10. vs2008 sp1
  11. spss分析qpcr数据_qRT-PCR差异分析及P值计算
  12. 为什么let this=that
  13. SIP协议学习(3)
  14. PAT甲级1143 Lowest Common Ancestor (30 分):[C++题解]LCA、最低公共祖先
  15. Linux目录结构和常用指令
  16. Python技能树及Markdown编辑器的测评
  17. 良心推荐:看完这20部BBC神级纪录片,英语水平提升几个Level!
  18. Epoll 反应堆模型核心原理及代码讲解
  19. 安装Zcashd Zcash-cli体验
  20. 华为云桌面服务器地址怎么看,探索华为FusionAccess云桌面的真面目

热门文章

  1. House Robber(房屋偷盗问题):动态规划解法
  2. 安装程序检测到无法验证文件的发行者_功能强大却鲜为人知的四款软件,一但发现就无法自拔...
  3. --T和T--的问题
  4. 机顶盒从ubuntu16更换到archLinux2021最新版,搞个远程下载支持智能电视直接播放
  5. 图像处理之目标检测与识别
  6. goodix gt911 在 Android 开发板上的适配流程
  7. c语言和mysql区别是什么_java和c语言的区别是什么
  8. sql server中较大的sql脚本如何执行,sqlcmd
  9. 组件化cocoapods仓库删除(填坑)
  10. java中bpmn流程图_Activiti如何动态获取流程图过程详解