『VUE H5页面 - PDF预览』

news/2024/7/24 3:21:50 标签: vue.js, pdf
  • 使用依赖:vue-pdf
  • 实现需求:将 PDF url 地址 转换为本地页面预览
<template>
  <div class="pdf-preview">
    <NavBar />

    <div class="container">
      <VuePdf v-for="i in numPages" :key="i" class="pdf" :src="src" :page="i"></VuePdf>
    </div>
  </div>
</template>

<script>
import { Toast } from 'vant'
export default {
  name: 'PdfPreview',
  components: {
    VuePdf: () => import(/* webpackChunkName: "vue-pdf-component" */ 'vue-pdf'),
  },
  props: {},
  data() {
    return {
      pdfUrl: '', //      pdf在线地址
      numPages: '', //    页数
      src: '',
    }
  },
  created() {
    this.pdfUrl = this.$route.query.pdfUrl
    this.loadingPDF(this.pdfUrl)
  },
  methods: {
    // 具体用法参考:https://github.com/FranckFreiburger/vue-pdf#readme
    async loadingPDF(url) {
      if (!url) return

      try {
        const { default: pdf } = await import(/* webpackChunkName: "vue-pdf-method" */ 'vue-pdf')
        this.src = pdf.createLoadingTask(url)

        this.src.promise
          .then(pdf => {
            this.numPages = pdf.numPages
          })
          .catch(error => Toast(error.message))
      } catch (error) {
        console.info(error)
      }
    },
  },
}
</script>

<style lang="scss" scoped>
.pdf-preview {
  width: 100%;
  height: 100%;

  .container {
    width: 100%;
    height: calc(100% - #{$vue-container-top-height});
    background: #f5f5f5;
    position: relative;
    overflow-y: scroll;

    .pdf {
      width: 100%;
      &:not(:last-child) {
        margin-bottom: 10px;
      }
    }
  }
}
</style>

http://www.niftyadmin.cn/n/5135555.html

相关文章

Vue+Echarts 图表 x轴y轴添加单位字段

需求 代码 两个选择其中一个即可&#xff0c;Y轴也是如此设置 xAxis:{name: 月,// 这个设置只在末尾添加单位axisLabel: {formatter: {value}月 // 在每个x轴坐标都添加了单位} }yAxis:{name: 月,// 这个设置只在末尾添加单位axisLabel: {formatter: {value}月 // 在每个x轴坐…

广告效果评估方案

本文由群狼调研(长沙户外广告实地调研)出品&#xff0c;欢迎转载&#xff0c;请注明出处。制定一个广告效果评估方案需要根据广告的性质、目标和实际情况来定制。以下是一个广告效果评估方案的基本框架&#xff0c;你可以根据实际情况进行调整和完善&#xff1a; 1. 背景和目标…

安装OPENCMS过程记录

今天尝试安装个人网站&#xff0c;或者说是内容管理系统&#xff0c;wordpress 是PHP的&#xff0c;所以上网找了一个免费的&#xff0c;在知乎上基于Java的开源CMS有哪些推荐&#xff0c;各自特点是什么 - 知乎 (zhihu.com) 找了这个opencms&#xff0c;据说是免费&#xff0…

GZ035 5G组网与运维赛题第7套

2023年全国职业院校技能大赛 GZ035 5G组网与运维赛项&#xff08;高职组&#xff09; 赛题第7套 一、竞赛须知 1.竞赛内容分布 竞赛模块1--5G公共网络规划部署与开通&#xff08;35分&#xff09; 子任务1&#xff1a;5G公共网络部署与调试&#xff08;15分&#xff09; 子…

【EI会议征稿】第三届结构抗震与监测检测国际学术会议(SSRMD 2024)

第三届结构抗震与监测检测国际学术会议&#xff08;SSRMD 2024&#xff09; 2024 3rd International Conference on Structural Seismic Resistance, Monitoring and Detection 随着城市化进程的深入&#xff0c;城市中的建筑越来越多。建筑也逐渐多样化&#xff0c;复杂化。…

GoLong的学习之路(十七)基础工具之Gin框架使用JWT(前后端分离)

文章目录 JWT安装JWT使用什么是Claims默认Claims自定义Claims生成JWT解析JWT 在gin框架中使用JWT获取Token渠道定义方法设置中间件注册路由 总结一下 JWT JWT全称JSON Web Token是一种跨域认证解决方案&#xff0c;属于一个开放的标准&#xff0c;它规定了一种Token实现方式&a…

CentOS7安装playwright终极指南

CentOS7安装playwright终极指南 系统环境为CentOS Linux release 7.9.2009 (Core) 最小安装&#xff0c;考虑到playwright的安装需要 python3.7 &#xff0c;本次直接选择安装python3.8。 升级libstdc cd /opt yum -y install wgetwget http://www.vuln.cn/wp-content/uploa…

谈谈我对 Reacitive 方法的理解

本文我想和大家分享一下我对当前 Reactivity 方法和现状的理解。我并不是说我的观点就是对的&#xff0c;但我认为&#xff0c;正是通过分享自己的观点&#xff0c;我们才能对行业中的事物达成共识&#xff0c;我希望这些来之不易的见解能够对其他人有所帮助&#xff0c;并补充…