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

vue文件预览docx-preview

1、在项目中引入插件docx-preview

npm i docx-preview

此插件依赖jszip,所以还要下载jszip:npm i jszip

2、点击在线预览按钮请求接口获取文件流

const blob = new Blob([resp.data])

const url = URL.createObjectURL(blob);//浏览器本地存储不能直接存储blob对象,所以转成字符串

sessionStorage.setItem('myBlob', url);

window.open('/preview', '_blank');//跳转预览页面

3、preview.vue

<template>

  <div class="my-component" ref="preview">

  </div>

</template>

<script>

  const docx = require("docx-preview");

  window.JSZip = require("jszip");

  // import {base64ToBlob} from '@/utils/util'

  export default {

      mounted(){

        this.getFile()

      },

      methods: {

          getFile() {

            this.pageLoading = this.$loading()

            // 从 sessionStorage 中获取字符串并转换为 Blob

            const storedUrl = sessionStorage.getItem('myBlob');

            const retrievedBlob = fetch(storedUrl).then(response => response.blob());

            if (retrievedBlob) {

              this.$nextTick(()=>{

                docx.renderAsync(retrievedBlob, this.$refs.preview);

            })

            }

           

            this.pageLoading.close()

          },

      }

  }

</script>

相关文章:

  • TypeScript 快速入门
  • ebpf: CO-RE, BTF, and Libbpf(二)
  • 西瓜书机器学习——第八章EM算法
  • 【密码学——基础理论与应用】李子臣编著 第五章 序列密码 课后习题
  • spring.factories文件作用详解,@SpringBootApplication启动过程与其关联
  • SpringCloud-快速通关(二)
  • Scrapy结合Selenium实现搜索点击爬虫的最佳实践
  • 一站式Windows下Docker开启MySQL并链接本地Navicat(附乱码解决方案)
  • Docker学习笔记-docker安装、删除
  • 单片机任意普通IO引脚使用定时器扩展外部中断的巧妙方法
  • 如何撤回刚提交的 commit
  • 在交换机上划分VLAN并配置IP地址的完整指南
  • C数据结构--顺序表
  • 【Linux】41.网络基础(2.3)
  • SQL 查询中 ORDER BY 的执行顺序
  • 30学Java第十天——类加载的过程
  • **searchProperties 是什么,python中**是什么:解包字典的操作符
  • camx的xml解析
  • 【跳坑日记】Jetson 6.2 编译cuda-sample报错:No CMAKE_CUDA_COMPILER could be found
  • java android持久化数据
  • 王毅同巴基斯坦副总理兼外长达尔通电话
  • 梅花奖在上海|朱洁静:穿越了人生暴风雨,舞台是最好良药
  • 印度最新发声:对所有敌对行动均予以反击和回应,不会升级冲突
  • 中国金茂新任命三名副总裁,撤销区域公司
  • 上海“电子支付费率成本为0”背后:金融服务不仅“快”和“省”,更有“稳”和“准”
  • 两部门发布山洪灾害气象预警:北京西部、河北西部等局地山洪可能性较大