首页 > 其他分享 >Vue在线预览PDF(不需要安装插件)

Vue在线预览PDF(不需要安装插件)

时间:2022-11-09 11:49:18浏览次数:36  
标签:插件 Vue 预览 axios previewShow previewUrl pdf PDF

<template>
<div class="app">
<el-button @click="preview1">预览在线PDF</el-button>
<el-button @click="preview2">请求后端预览</el-button>
<el-dialog
v-if="previewShow"
title="预览"
:visible.sync="previewShow"
append-to-body
width="90%"
>
<!-- PDF显示的地方 -->
<iframe ref="pdf" :src="previewUrl" width="100%"></iframe>

<span slot="footer" class="dialog-footer">
<el-button type="primary" plain @click="previewShow = false"
>关 闭</el-button
>
</span>
</el-dialog>
</div>
</template>
<script>
import axios from "axios";
export default {
data() {
return {
previewShow: false,
previewUrl: "",
};
},
methods: {
// 直接传入一个地址
preview1() {
this.previewShow = true;
this.previewUrl = "https://www.gjtool.cn/pdfh5/git.pdf";
this.$nextTick(() => {
this.$refs.pdf.height = document.documentElement.clientHeight;
});
},
// 后端返回二进制流
preview2() {
this.previewShow = true;
axios
.get("你们后端的地址(下载地址)", {
responseType: "blob",
})
.then((res) => {
// 对后端返回二进制流做处理
this.previewUrl = window.URL.createObjectURL(
new Blob([res], { type: "application/pdf" })
);
// 重新设置大小
this.$nextTick(() => {
this.$refs.pdf.height = document.documentElement.clientHeight;
});
});
},
},
};
</script>
<style scoped>
</style>

标签:插件,Vue,预览,axios,previewShow,previewUrl,pdf,PDF
From: https://www.cnblogs.com/aquackw/p/16873082.html

相关文章

  • Vue在线预览word(需要插件)
    下载插件[email protected] npmijszip完整代码<template><divclass="app"><el-button@click="preview">预览</el-button><el-dialog......
  • Vue的Vue-ls使用
    Vue插件,用于从Vue上下文中使用本地Storage,会话Storage和内存Storage一个vue封装的本地储存的方法。1.安装NPMnpminstallvue-ls--saveYARNyarnaddvue-ls2.......
  • 什么样的vue面试题答案才是面试官满意的
    Vue组件渲染和更新过程渲染组件时,会通过Vue.extend方法构建子组件的构造函数,并进行实例化。最终手动调用$mount()进行挂载。更新组件时会进行patchVnode流程,核心就......
  • 每日一题之Vue数据劫持原理是什么?
    什么是数据劫持?定义:数据劫持,指的是在访问或者修改对象的某个属性时,通过一段代码拦截这个行为,进行额外的操作或者修改返回结果。简单地说,就是当我们触发函数的时候动......
  • Vue技术之“关于sortable排序的使用”
    Vue关于sortable排序的使用方案1在使用sortable后要注意给el-table-column中加入prop="overdueDays"参数,不然会找不到需要排序的数据<el-table-columnprop="overdueDa......
  • Vue 数组中出现__ob__: Observer无法取值
    问题说明在开发项目中经常要从数据库中拿到数组然后复制给新的数组使用,但是会发现有时候会发现带有 __ob__:Observer 数组后缀的就是没有办法取到值,更可怕的是 consol......
  • vue 的 use 和 component
    之前一直没有搞明白use和component的区别今天终于搞明白了,记录一下避免之后忘记 首先每个组件都会提供一个install方法,在这个方法里通过component注册组件另......
  • Vue 项目优化解决方案 有哪些 ?
    1.打包的时候,通过插件把css代码单独抽离出来使用link引入 2.打包的时候,通过webpack内置插件optimization 把公共的js代码抽离出来 ps:打包之后,代码冗余,......
  • vue - vue基础/vue核心内容(2)
    今天的内容书接上回,同样是vue的核心基础部分,今天偏向于理论性,特别是vue对于数据对象的监测那一块,刚开始琢磨了半天,这股劲一过,现在好理解多了10.watch和computed对比计算属......
  • VUE中的路由router
    首先,需要下载去​​Vue.js官网​​​或者​​Vue.js菜鸟教程​​​下载​​vue-router.js插件​​。vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建......