位置: 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)(奥杜邦的祈祷经典语录)

  • 闲鱼的钱怎么提现的呢(闲鱼的钱怎么提现的时候没有呢)

    闲鱼的钱怎么提现的呢(闲鱼的钱怎么提现的时候没有呢)

  • 美版抖音怎么不能看(下了美版抖音打开什么都没有)

    美版抖音怎么不能看(下了美版抖音打开什么都没有)

  • 拉黑再删除永久加不上怎么办(拉黑再删除永久加不上怎么设置)

    拉黑再删除永久加不上怎么办(拉黑再删除永久加不上怎么设置)

  • 小寻电话手表怎么绑定(小寻电话手表怎么下载软件)

    小寻电话手表怎么绑定(小寻电话手表怎么下载软件)

  • 苹果国行和其他版本有什么区别(苹果国行和其他版本哪个更好)

    苹果国行和其他版本有什么区别(苹果国行和其他版本哪个更好)

  • 微信好友验证多久过期(微信好友验证多少字)

    微信好友验证多久过期(微信好友验证多少字)

  • 苹果x充电到80就充不进去了(苹果x充电到80就不充了怎么回事)

    苹果x充电到80就充不进去了(苹果x充电到80就不充了怎么回事)

  • 快手上传视频怎么保持原画质(快手上传视频怎么赚钱)

    快手上传视频怎么保持原画质(快手上传视频怎么赚钱)

  • dub-al20是什么型号(dub一al2o是什么型号)

    dub-al20是什么型号(dub一al2o是什么型号)

  • 如何关闭微信收款语音提醒(如何关闭微信收款语音播报)

    如何关闭微信收款语音提醒(如何关闭微信收款语音播报)

  • 乐视2怎么隐藏图标(乐视2怎么隐藏桌面图标)

    乐视2怎么隐藏图标(乐视2怎么隐藏桌面图标)

  • iphone11什么时候开始卖(iPhone11什么时候生产的)

    iphone11什么时候开始卖(iPhone11什么时候生产的)

  • 段前段后0.5行是多少磅(段前段后0.5行是什么效果)

    段前段后0.5行是多少磅(段前段后0.5行是什么效果)

  • oppo15x搭载的什么处理器(oppo15x是什么处理器)

    oppo15x搭载的什么处理器(oppo15x是什么处理器)

  • nova5发布时间(nova5发布时间和价格)

    nova5发布时间(nova5发布时间和价格)

  • 华为折屏手机什么时候上市(华为折屏手机什么时候发售)

    华为折屏手机什么时候上市(华为折屏手机什么时候发售)

  • 华为p30支持快充吗(华为P30支持快充吗)

    华为p30支持快充吗(华为P30支持快充吗)

  • iphonex来电铃声突然变小(iphonex来电铃声突然变小怎么设置)

    iphonex来电铃声突然变小(iphonex来电铃声突然变小怎么设置)

  • 惠普笔记本重装系统按什么键(惠普笔记本重装系统找不到驱动器)

    惠普笔记本重装系统按什么键(惠普笔记本重装系统找不到驱动器)

  • xr录屏功能在哪(xr录屏在哪里打开)

    xr录屏功能在哪(xr录屏在哪里打开)

  • 什么是阿里旺旺(什么是阿里旺旺举证号)

    什么是阿里旺旺(什么是阿里旺旺举证号)

  • 快手相机权限在哪设置(快手相机权限在哪设置苹果系统)

    快手相机权限在哪设置(快手相机权限在哪设置苹果系统)

  • 详细分析解决Uncaught SyntaxError: Cannot use import statement outside a module (at ...)的错误(unc方式)

    详细分析解决Uncaught SyntaxError: Cannot use import statement outside a module (at ...)的错误(unc方式)

  • 一文了解Python序列化(python的顺序)

    一文了解Python序列化(python的顺序)

  • 增值税为什么不重复征税
  • 高档珍珠镶嵌
  • 个人劳务报酬怎么申报个税
  • 网上代增值税专用发票流程
  • 房地产业如何确认收入
  • 资产项目有
  • 当月费用次月收到发票
  • 固定资产弃置费用计入什么科目
  • 收到发票付款是抹了零头怎么做账
  • 企业运费发票需要缴纳印花税吗附政策依据
  • 主营业务收入借增贷减
  • 股权拍卖溢价部分如何做会计处理?
  • 写字楼出租可以给租户注册吗
  • 生产部门的费用计入什么科目
  • 部门奖金怎么入账
  • 增值税可以抵扣企业所得税吗
  • 物业管理行业税点
  • 旅游合同签订
  • 月初开票能抵扣上月的税吗
  • 发票专用章盖错地方了可以用吗
  • 金税盘怎么增加复核人
  • 资产和负债可以一增一减吗
  • 自产产品用于集体福利按什么价格入账
  • 农业大棚卷帘机用什么油
  • 资产评估合同属于什么合同
  • 农产品收购销售免税吗
  • 预付卡充值赠送的金额确认收入
  • 可抵扣的金税盘维护费会计分录怎么做?
  • 库管和车间工人哪个好
  • 安装支付设备工作怎么样
  • 商品进销差价主营业务收入
  • 教你从脸上看出风水
  • 长期股权投资和资本公积关系
  • 商事账簿编制的一般规则是什么
  • php 递归函数
  • 广电默认网关是多少
  • 运行安装程序时发生错误
  • 预付办公用品费用,未收到发票
  • 房产税是什么意思,简单的回答
  • 邓弗里斯什么水平
  • 使用php进行mysql数据库编程的基本步骤
  • vue图片点击放大
  • ps打不了字只显示一个点怎么办
  • 新购买的发票如何读取
  • springboot升级到2.1.6需要注意
  • mongodb使用教程
  • centos 安装dpkg
  • 经营性应付项目的增加为什么调减
  • mysql基本查询
  • sql文件压缩
  • 印花税计税依据怎么算
  • 小规模纳税人做工资没交社保
  • 收到自然人税务申报短信
  • 其他应收款如何计提减值准备
  • 房租费用能计入什么科目
  • 未开票收入如何计提增值税
  • 应付利息属于什么负债
  • 物业公司管理费用都有哪些科目
  • 建筑企业包工包料业务的发票开具和涉税处理
  • 企业支付宝要手续费吗
  • 核定征收也需要报税务报表吗?
  • 代扣代缴增值税申报期限
  • 其他货币资金的核算业务怎样处理
  • 关于爱在线观看电影完整版
  • mysqlw3school
  • centos inode
  • win10快速访问在哪
  • linux服务器被尝试登录失败
  • python网络爬虫程序
  • shell自定义命令
  • jq监听input框value值
  • shell脚本检查输入参数
  • python 基础 详细
  • jquery对象与dom对象可以相互转换
  • python 电话号码
  • js图片预览
  • 天津市各区国税局待遇一样吗?
  • 推动税务系统全面从严
  • 2018年北京个人所得税查询
  • 从租计征房产税怎么申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设