vueshowpdf 移动端pdf文件预览

news2025/5/25 19:09:27

1、安装

npm install vueshowpdf -S

2、参数

属性说明类型默认值
v-model是否显示pdf--
pdfurlpdf的文件地址String-

scale

默认放大倍数

Number1.2

minscale

最小放大倍数

Number0.8

maxscale

最大放大倍数

Number2

3、事件

名称说明回调参数
closepdf pdf关闭事件-
pdferr文件地址解析错误事件-

4、核心代码

<template>
  <div class="case-info">
    <van-cell title="附件" value="预览" is-link @click="viewPdf" class="perview" />
    <vueshowpdf class="pdf" v-model="isShowPdf" :pdfurl="pdfurl"
      :minscale='0.4' :scale='0.6' @closepdf="isShowPdf = false" @pdferr="pdfError"
    ></vueshowpdf>
  </div>
</template>

<script>
import api from '@/api.js'
import vueshowpdf from 'vueshowpdf'
export default {
  name: 'test',
  data () {
    return {
      isShowPdf: false,
      pdfUrl: '',
      pdfKey: 0
    }
  },
  components: {
    vueshowpdf
  },
  deactivated () {
    // 离开页面默认关闭pdf
    this.isShowPdf = false
    this.pdfKey++
  },
  methods: {
    // 预览pdf
    async viewPdf () {
      if (this.pdfUrl) {
        this.isShowPdf = true
      } else {
        this.$toast.loading({
          message: '加载中...',
          duration: 0,
          forbidClick: true
        })
        try {
          const res = await api.getFilePreview()
          this.$toast.clear()
          if (res.code === '0') {
            let blob = this.dataURLtoBlob(res.data)
            this.pdfurl = URL.createObjectURL(blob)
            this.isShowPdf = true
          } else {
            this.$toast(res.msg || '该原始文件不存在')
          }
        } catch (error) {
          this.$toast.clear()
        }
      }
    },
    // 将base64转换为文件
    dataURLtoBlob (dataurl) {
      const bstr = atob(dataurl)
      let n = bstr.length
      const u8arr = new Uint8Array(n)
      while (n--) {
        u8arr[n] = bstr.charCodeAt(n)
      }
      return new Blob([u8arr], { type: 'application/pdf' })
    },
    // 关闭pdf
    closePdf () {
      this.isShowPdf = false
      this.pdfKey++
    },
    // pdf预览失败
    pdfError (errorUrl) {
      this.$toast.fail('预览失败')
      this.isShowPdf = false
      this.pdfKey++
    }
  }
}
</script>

<style lang="scss" scoped>
  .perview .van-cell__value {
    color: #468bff;
    text-decoration: underline;
  }
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1010526.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图的基本知识

图 一、图的定义和基本术语二、图的存储结构&#xff08;1&#xff09;数组&#xff08;邻接矩阵表示法&#xff09;&#xff08;2&#xff09;数组&#xff08;邻接矩阵&#xff09;的实现&#xff08;3&#xff09;邻接表&#xff08;链式表示法&#xff09;&#xff08;4&am…

6、如何将 Flink 中的数据写入到外部系统(文件、MySQL、Kafka)

目录 1、如何查询官网 2、Flink数据写入到文件 3、Flink数据写入到Kafka 4、Flink数据写入到MySQL 1、如何查询官网 官网链接&#xff1a;官网 2、Flink数据写入到文件 传送门&#xff1a;Flink数据写入到文件 3、Flink数据写入到Kafka 传送门&#xff1a;Flink数据写入…

2023-9-14 最长公共子序列

题目链接&#xff1a;最长公共子序列 #include <iostream> #include <algorithm>using namespace std;const int N 1010;int n, m; char a[N], b[N]; int f[N][N];int main() {cin >> n >> m;cin >> a 1 >> b 1;for(int i 1; i < n…

30WSIP网络音柱

SV-7042VP 30WSIP网络音柱 一、描述 SV-7042VP是我司的一款SIP网络音柱&#xff0c;具有10/100M以太网接口&#xff0c;将网络音源通过自带的功放和喇叭输出播放&#xff0c;可达到功率30W。SV-7042VP作为SIP系统的播放终端&#xff0c;可用于需要广播播放的场所&#xff0c;…

用node开发微信群聊机器人第③章

▍PART 序 怎么https请求第三方api 有哪些免费的、付费的第三方api 记得先去看前几章&#xff0c;看明白了再来看本章&#xff0c;不然你会一脸懵。点合集》#程序员干货 记得先把小程序加个收藏不然等下你要调试的时候找不到》“程序员实用资源” ▍PART 正文 来&#xff…

NeuroFlash:AI文章写作与生成工具

【产品介绍 ​ 】 名称 NeuroFlash 上线时间 2015 具体描述 Neuroflash是一款基于人工智能的文本和图像生成器&#xff0c;可以帮助用户快速创建高质量的内容。Neuroflash拥有超过100种短文和长文的文本类型&#xff0c;涵盖了各种营销场景和需求。只需要输入简单的指示&#…

定时任务框架-xxljob

1.定时任务 spring传统的定时任务Scheduled&#xff0c;但是这样存在这一些问题 &#xff1a; 做集群任务的重复执行问题 cron表达式定义在代码之中&#xff0c;修改不方便 定时任务失败了&#xff0c;无法重试也没有统计 如果任务量过大&#xff0c;不能有效的分片执行 …

stackqueuepriority_queue

目录 一、容器适配器 二、deque 1、deque的相关函数 2、关于deque 3、deque的底层实现 4、deque的设计缺陷 5、结论 三、stack 1、stack的相关函数 2、stack相关函数使用 3、stack模拟实现 四、queue 1、queue的相关函数 2、queue相关函数使用 3、queue的模拟实…

2023-9-14 数字三角形

题目链接&#xff1a;数字三角形 #include <iostream> #include <algorithm>using namespace std;const int N 510, INF 1e9;int n; int a[N][N]; int f[N][N];int main() {cin >> n;for(int i 1; i < n; i )for(int j 1; j < i; j )cin >> …

书剑宠物疫苗接种管理软件操作教程

【软件简介】 书剑宠物疫苗接种管理软件是一款宠物疫苗接种管理的工具&#xff0c;适合宠物诊所使用。具有动物主人建档、宠物疫苗接种登记管理、每日提醒、打印疫苗接种通知卡、自定义短信提醒模板等完善的功能。 另外本软件的特色是同时具有手机网页版功能&#xff0c;手机…

全球十大优质炒黄金交易APP平台排名(信息汇总)

由于近些年全球通货膨胀高企&#xff0c;炒黄金交易平台越来越受到人们的关注。然而&#xff0c;如何在众多的平台中选择适合自己的平台&#xff0c;却是一个值得思考的问题。 随着移动互联网的快速发展&#xff0c;越来越多的投资者更倾向于通过手机APP来炒黄金。本文将为大…

Contents:帮助公司为营销目的创建内容

【产品介绍】 名称 Contents上线时间 2017年5月 具体描述 Contents是一家提供基于人工智能的内容生成平台的企业&#xff0c;可以帮助用户在各种网站和工具中使用最先进的机器学习模型&#xff0c;实现视频编辑、图像生成、3D建模等内容创作。【团队介绍…

“掌握技巧,轻松调整视频时长:打造完美短视频分享“

在今天的高速信息时代&#xff0c;视频已成为我们传递信息和娱乐的主要方式之一。但有时候&#xff0c;视频的时长可能会超出我们的预期&#xff0c;或者我们希望在特定的时间内呈现内容。那么&#xff0c;如何调整视频的时长呢&#xff1f;下面&#xff0c;我们将分享几种简单…

聚精品,通全球 2024中国(杭州)国际电商物流包装产业展览会四月隆重开幕

2024中国&#xff08;杭州&#xff09;国际电商物流包装产业展览会 2024年4月12-14日 | 杭州国际博览中心 同期举办&#xff1a;2024长三角快递物流供应链与技术装备展览会&#xff08;杭州&#xff09; 2024中国&#xff08;杭州&#xff09;国际数字物流技术与应用展览会 展会…

Bearly:基于人工智能的AI写作文章生成工具

【产品介绍】 名称 Bearly 具体描述 Bearly是一个AI人工智能内容创作工具。你可以用Bearly来阅读、写作、创作&#xff0c;提高你的效率。包括使用Bearly来生成网页的摘要、标题、关键点&#xff0c;也可以用Bearly来生成创意内容、艺术图片、文案编辑等。帮助你克…

git工具下载和安装

(1)从git官网下载安装包 然后安装 https://git-scm.com/downloads (2)git 学习参考官方的资料 https://git-scm.com/book/en/v2

PADS出GERBER时 焊盘丢失、焊盘变形问题

一、PCB设计软件PADS出GB焊盘丢失问题解决方案 PCB设计软件PADS出GB焊盘丢失原因&#xff1a;PADS斜角焊盘在输出gerber时需要填充&#xff0c;当填充的线过大(比焊盘宽度大)就会出现焊盘丢失。 问题解决方法&#xff1a;输出光绘时将“填充线宽”改小。 二、PCB设计软件PADS出…

单链表和双链表

单链表和双链表 单链表&#xff1a;只有一个指向下一节点的指针 --> 单向读取 双链表&#xff1a;既有指向下一节点的指针&#xff0c;也有指向上一节点的指针&#xff0c;可以通过此向前查找 单链表和双链表的反转&#xff1a;逆序 整个链表逆序、部分链表逆序&#…

【数据分享】2001-2022年我国省市县镇四级的逐月降水量数据(免费获取/Shp/Excel格式)

气象数据在日常研究中非常常用&#xff0c;之前我们分享过来自国家青藏高原科学数据中心提供的1901-2022年1km分辨率逐月降水栅格数据以及基于该数据处理而得到的1901-2022年1km分辨率的逐年降水栅格数据&#xff08;可查看之前的文章获悉详情&#xff09;&#xff01; 本次我…

设置伙伴(buddy)-给窗口控件增加快捷键

在官方教程或者很多qt程序中经常看到能使用全键盘操作软件&#xff0c;那么QT creator也支持了这一特性&#xff0c;就是使用设置伙伴来实现的。 我们可以在设计界面按照如下几步实现&#xff1a; 先放置label 再放置一个lineEdit控件。 这个时候我们就可以开始伙伴绑定的步骤…