前端文件word Excel pdf PPT预览

ops/2024/10/19 21:29:40/

组件一

<template><j-modal:visible="visible":fullscreen="fileType!=='other'&&fileType!=='word'"@ok="handleOk":width="1200"@cancel="handleCancel"><vue-office-docxv-if="fileType==='word'":src="fileUrl"style="height: 100vh"@rendered="renderedHandler"@error="errorHandler":request-options="headers"/><vue-office-excelv-if="fileType==='excel'":src="fileUrl"style="height: 100%"@rendered="renderedHandler"@error="errorHandler":request-options="headers"/><vue-office-pdfv-if="fileType==='pdf'":src="fileUrl"style="height: 100vh"@rendered="renderedHandler"@error="errorHandler"/><div v-if="fileType==='image'"><img :src="fileUrl" style="height: 80%;"></img></div><div v-if="fileType==='video'" style="margin:auto 0 "><video :src="fileUrl" :controls="true" style="height: 80%;" :autoplay="false"></video></div><div v-if="fileType==='radio'"><audio :src="fileUrl" :controls="true" :autoplay="false"></audio></div><div v-if="fileType==='other'"><a-row>该文件格式暂不支持预览,请下载后查看</a-row><br><a-row><a-button type="primary" @click="downloadFile">下载</a-button></a-row></div><ppt-view :src="fileUrl" v-if="fileType==='pptx'"></ppt-view></j-modal>
</template>
<script>
//引入VueOfficeDocx组件
import VueOfficeDocx from '@vue-office/docx'
import VueOfficeExcel from '@vue-office/excel'
import VueOfficePdf from '@vue-office/pdf'
import PptView from './PptView'
//引入相关样式
import '@vue-office/docx/lib/index.css'
import '@vue-office/excel/lib/index.css'
import Vue from 'vue'
import { ACCESS_TOKEN } from '@/store/mutation-types'
export default {name: 'filePreviewDialog',components: {VueOfficeDocx,VueOfficeExcel,VueOfficePdf,PptView},data() {return {fileType:'',fileUrl: '',fileName: '',visible: false,headers: '',baseDomain:window._CONFIG['domianURL']+'/sys/common/static/'};},created() {const token = Vue.ls.get(ACCESS_TOKEN);//---------------------------- begin 图片左右换位置 -------------------------------------this.headers = {"X-Access-Token":token};},methods: {init(file) {this.fileUrl=this.baseDomain+file.fileUrl;this.fileName=file.fileNamethis.fileType=file.fileSuffixconsole.log("文件地址:", this.fileUrl,"文件名字", this.fileName, "文件类型", this.fileType)},renderedHandler() {console.log("渲染完成")},errorHandler(e) {word">if (e.status == 404) {this.$message.error("该文件未找到!")}},handleOk() {this.visible = false;},handleCancel() {this.visible = false;},downloadFile() {const tag = document.createElement("a");tag.style.display = 'none';tag.target = '_blank';tag.href = this.fileUrl;tag.download = this.fileName;document.body.appendChild(tag);tag.click();document.body.removeChild(tag);}},}
</script><style scoped>
/deep/ .ant-modal-footer{display: none;
}
.vue-office-docx .docx-wrapper>section.docx {margin-bottom:5px;width: 50vw!important;
}
</style>

PPT组件二

1.在pptx.js官网下载压缩包
pptx
(2)选择版本下载

在这里插入图片描述

2.在public文件夹中添加pptxjs依赖文件
3.在index.html中引入

    <link rel="stylesheet" href="/PPTXjs/css/pptxjs.css" /><link rel="stylesheet" href="/PPTXjs/css/nv.d3.min.css" /><!-- word">for charts graphs --><scripttype="text/javascript"src="/PPTXjs/js/jquery-1.11.3.min.js"></script><script type="text/javascript" src="/PPTXjs/js/jszip.min.js"></script><!-- v2.. , NOT v.3.. --><script type="text/javascript" src="/PPTXjs/js/filereader.js"></script><!--https://github.com/meshesha/filereader.js --><script type="text/javascript" src="/PPTXjs/js/d3.min.js"></script><!-- word">for charts graphs --><script type="text/javascript" src="/PPTXjs/js/nv.d3.min.js"></script><!-- word">for charts graphs --><script type="text/javascript" src="/PPTXjs/js/pptxjs.js"></script><script type="text/javascript" src="/PPTXjs/js/divs2slides.js"></script><!-- word">for slide show -->

4.在页面中使用

<template><div id="pptx"></div>
</template><script>
export default {name: 'PptView',mounted() {this.pptxShow(this.src);},methods: {pptxShow(src) {this.$nextTick(() => {$("#pptx").pptxToHtml({pptxFileUrl: src,slidesScale: "100%",});});},},props: {src: {type: String,required: true,},},
}
</script><style scoped></style>

http://www.ppmy.cn/ops/5686.html

相关文章

Docker - 简介

原文地址&#xff0c;使用效果更佳&#xff01; Docker - 简介 | CoderMast编程桅杆https://www.codermast.com/dev-tools/docker/docker-introduce.html Docker是什么&#xff1f; Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言 并遵从 Apache2.0 协议开源。 D…

基于Springboot的职称评审管理系统

基于SpringbootVue的获取源码 联系方式 &#x1f447;&#x1f3fb;的设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringbootMybatis工具&#xff1a;IDEA、Maven、Navicat 系统展示 用户登录 首页 评审条件 论坛信息 系统公告 后台登录…

【快速上手ESP32(基于ESP-IDFVSCode)】07-I2C(附BH1750实战代码)

I2C I2C&#xff0c;全称Inter-Integrated Circuit&#xff0c;是一种用于在集成电路之间进行短距离数据传输的通信协议。它最初由Philips&#xff08;现在的NXP半导体&#xff09;公司于1980年代初开发&#xff0c;现已成为广泛应用于电子设备之间通信的标准。 I2C协议简单、灵…

设计模式(020)行为型之备忘录模式

备忘录模式是一种行为型设计模式&#xff0c;用于在不破坏封装性的前提下捕获一个对象的内部状态&#xff0c;并在该对象之外保存这个状态&#xff0c;以便之后可以将该对象恢复到之前的状态。这种模式通常用于需要记录对象状态历史、撤销操作或实现“回到过去”功能的场景。 在…

clickhouse学习笔记04

ClickHouse高可用之ReplicatedMergeTree引擎介绍 ClickHouse高可用架构准备-环境说明和ZK搭建 RPM安装ClickHouse 上传我们的clickhouse rpm文件。 安装&#xff1a; 中途需要输入用户名和密码 可以不设置 直接回车。 启动&#xff1a; 查看状态&#xff1a; 查看端口是否占用…

续传查询SQL不规范导致漏数的问题

查询交易记录的时候&#xff0c;&#xff0c;用户需要一页一页往下翻&#xff0c;每点击一次就会将续传接口包发到后端接口进行查询返回下一页的数据&#xff0c;续传接口有几个字段&#xff0c;是续传键值&#xff0c;后端的SQL会根据上次读取到的最后一条往后捞数据 有些同事…

Android开发——Fragment

Demo fragment_blank.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_pare…

装饰器学习

【一】什么是装饰器 装饰器指的就是为被装饰的对象添加新的功能 器 代表工具 增加后的调用方式不变 在不改变源代码和调用方式的基础上增加额外的新功能 【二】装饰器的用途 对上线后的程序进行新功能的增加和修改 给一个功能增加新的需求或者改变原来的程序运行逻辑 【…