vue docx-preview实现docx文件在线预览
之前一般做项目进行文件浏览的时候基本都是用的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文件在线预览相关推荐
- 前端实现docx、pdf格式文件在线预览
介绍 在业务中,如果遇到文档管理类的功能,会出现需要在线预览的业务需求,本文主要是通过第三方库来实现文档预览功能,并将其封装成preview组件 docx docx的实现需要使用docx-previe ...
- 文件在线预览doc,docx转换pdf(一)
文件在线预览doc,docx转换pdf(一) 前言 文档转换是一个是一块硬骨头,但是也是必不可少的,我们正好做的知识库产品中,也面临着同样的问题,文档转换,精准的全文搜索,知识的转换率,是知识库产品的 ...
- vue 实现pdf文件在线预览
PDF文件在线预览的功能相信大家都是有遇到过的,这边有两种实现方法,大家可以借鉴参考下 第一种,使用vue-pdf 安装 npm install --save vue-pdf 页面代码 <tem ...
- doc文件在线预览 vue_跨平台(uniapp)文件在线预览解决方案
一.前言 之前写过一篇文章关于上传目录文件:uni-app系统目录文件上传(非只图片和视频)解决方案,这次来解决文件预览问题. uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者 ...
- 手把手教你用 Java 实现word、excel、ppt、txt等办公文件在线预览功能!
如何用 Java 实现word.excel.ppt.txt等办公文件在线预览功能?本文告诉你答案! java 实现办公文件在线预览功能是一个大家在工作中也许会遇到的需求,网上些公司专门提供这样的服务, ...
- 基于SpringBoot的文件在线预览神器,支持99%的文件在线预览
kkFileView简介 kkFileView可以用来搭建文件在线预览服务,在Github上已有5.7k+Star.该项目使用流行的SpringBoot搭建,易上手和部署,基本支持主流办公文档的在线预 ...
- 跨平台(uni-app)文件在线预览解决方案
1024刚过,也祝愿各位码友在今后生活中,身体健康,事事顺心,再无Bug. 一.前言 之前写过一篇文章关于上传目录文件:uni-app系统目录文件上传(非只图片和视频)解决方案,这次来解决文件预览问题 ...
- Spring Boot 实现万能文件在线预览-开源学习一
Spring Boot 实现万能文件在线预览-开源学习一 1. 项目特性 支持word excel ppt,pdf等办公文档 支持txt,java,php,py,md,js,css等所有纯文本 支持z ...
- word、excel、ppt 办公文件 在线预览
如果想要免费的,可以用 openoffice,实现原理就是: 通过第三方工具openoffice,将word.excel.ppt.txt等文件转换为pdf文件流:当然如果装了Adobe Reader ...
- kkfileview v2.0 发布,文件在线预览项目方案
kkfileview文件在线预览 此项目为文件文档在线预览项目解决方案,项目使用流行的spring boot搭建,易上手和部署,部署好后可以独立提供预览服务,使用http接口访问,不需要和应用集成,具 ...
最新文章
- java项目中使用重定向返回字符串
- golang println与printf区别
- P4597 序列sequence
- 在tomcat新建html页面,仅将HTML,CSS网页部署到Tomcat(示例代码)
- 高并发02_同步锁的一些题目
- 快速沃尔什变换(FWT)
- python元胞转list_[Python练习向] 简易元胞自动机框架
- php大马源码 手机网页,php大马源码:【百家号】脸书百科,分析 PHP大马-php_mof SHELL Web程序...
- android 表情删除,微信8.0版本为什么删除30多个表情?旧表情删除原因说明[多图]...
- vs2008 sp1
- spss分析qpcr数据_qRT-PCR差异分析及P值计算
- 为什么let this=that
- SIP协议学习(3)
- PAT甲级1143 Lowest Common Ancestor (30 分):[C++题解]LCA、最低公共祖先
- Linux目录结构和常用指令
- Python技能树及Markdown编辑器的测评
- 良心推荐:看完这20部BBC神级纪录片,英语水平提升几个Level!
- Epoll 反应堆模型核心原理及代码讲解
- 安装Zcashd Zcash-cli体验
- 华为云桌面服务器地址怎么看,探索华为FusionAccess云桌面的真面目
热门文章
- House Robber(房屋偷盗问题):动态规划解法
- 安装程序检测到无法验证文件的发行者_功能强大却鲜为人知的四款软件,一但发现就无法自拔...
- --T和T--的问题
- 机顶盒从ubuntu16更换到archLinux2021最新版,搞个远程下载支持智能电视直接播放
- 图像处理之目标检测与识别
- goodix gt911 在 Android 开发板上的适配流程
- c语言和mysql区别是什么_java和c语言的区别是什么
- sql server中较大的sql脚本如何执行,sqlcmd
- 组件化cocoapods仓库删除(填坑)
- java中bpmn流程图_Activiti如何动态获取流程图过程详解