位置: IT常识 - 正文

vue docx-preview实现docx文件在线预览

编辑:rootadmin
vue docx-preview实现docx文件在线预览

推荐整理分享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; }}vue docx-preview实现docx文件在线预览

实现结果

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

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

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

<el-dialog v-model="dialogVisible" class="dialogLarge" append-to-body :destroy-on-close="true"> //此处是弹窗名称 <template #header> <div class="dialogHeader"> <div>预览</div> </div> </template> //此处是预览图片的Img组件 <img w-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;}
本文链接地址:https://www.jiuchutong.com/zhishi/293742.html 转载请保留说明!

上一篇:ChatGPT-Next-Web:Vercel 和 Cloudflare 的快速部署

下一篇:奥杜邦中心的一只靛蓝彩鹀,美国宾夕法尼亚州 (© Vicki Jauron/Getty Images)(奥杜邦的祈祷经典语录)

  • 计算增值税时要包括关税吗
  • 中税协是什么意思
  • 金税盘的作用是什么意思
  • 土地交易服务费属于非税收入吗
  • 企业会计制度固定资产保险费
  • 个体经营部可以开增值税专用发票吗
  • 印花税不用计提会计第几号准则
  • 退税发票误勾选怎么撤销
  • 收到红字发票如何申报增值税?
  • 收到应收账款逾期短信
  • 查账征收的个体户怎么报税
  • 什么情况下要交个人所得纳税
  • 亏损 纳税
  • 房地产开发企业资质证书
  • 资助的开发经费可税前扣除吗
  • 税局代开专票如何做账务处理?
  • 支票只能同城吗
  • 定额发票2019年规定
  • 防暑降温费如何做账
  • 子公司评估增值 出售股权
  • 归属于母公司的净利润怎么来的?
  • 营业外收入有哪些情况
  • 财务报表批准日是哪一天
  • 纳税信用等级是自动判定吗
  • 应付利息和应计利息怎么区分
  • 合同取得成本和增量成本有什么区别
  • 将原材料变成成品的过程
  • 自产自用产品的会计处理
  • 出售使用过的设备
  • 经营出租固定资产折旧额计入什么科目
  • win7为什么还有人用
  • 系统太多怎么办
  • 发票未到先付款的账务处理
  • html前端技术
  • 贷款利息不能抵扣依据
  • macOS Big Sur 11.2 公测版 beta 1怎么更新?
  • mce文件是什么软件
  • php教程全集
  • 苏门答腊岛海岸线多少
  • VUE -- defineExpose
  • 如何取消库存商品订单
  • php模板引擎原理
  • php评论盖楼
  • 土地出让金抵减增值税账务处理
  • Node.js安装过程
  • Apache PHP MySql安装配置图文教程
  • 税收收入退还书有时间限制吗
  • 企业所得税报表模板
  • 应付职工薪酬住房公积金怎么算
  • python合并集合
  • python的爬虫
  • 职工福利费允许抵扣吗
  • 审核后的凭证
  • access数据库用户名和密码
  • 未达起征点的增值税会计处理
  • 收到采购发票如何录入系统
  • 固定资产是怎么管理的
  • 装修室内设计效果图
  • 在建的工程收到的发票
  • 自制半成品怎么计算
  • 筹建期间购买的五金工具计入什么科目
  • 支付大型设备税率是多少
  • 出口抵减内销产品应纳税额
  • 股东股权转让印花税 公司承担
  • 分类不同
  • win10英文版系统怎么改成中文
  • yum providers命令
  • linuxweb服务器
  • unity怎么念
  • opengl做简单的模型
  • 安卓开发框架mvvm
  • c#委托的理解
  • javascript基础入门教程
  • python saga
  • python 查找中文
  • 安卓通用代码
  • 微信群记账小程序
  • 别墅与普通住宅的优缺点
  • 什么是解放思想?请阐述解放思想和实事求是之间的关系
  • 讨论如何做好寺庙管理服务工作
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设