vue——移动端在线预览pdf并能缩放(pdfh5)

news/2024/7/7 10:06:06 标签: 移动端pdf预览, pdfh5, pdf 手势缩放

最近接了一个需求需要在移动端预览pdf,并切要能缩放,百度发现大多推荐vue-pdf,但是vue-pdf这个包,安装之后运行报错,解决之后的实现效果不符合需求需要,而且,实现缩放功能的时候,整个canvas画布整个放大,虽然有放大效果,但是,画布无法滚动,交互体验实在是太差,最后找到pdfh5这个包,预览效果不错,而且支持手势缩放和分页功能。

pdfh5 的github地址:

https://github.com/gjTool/pdfh5

功能实现效果如下图:

1. 首先引入pdfh5

npm i --save pdfh5

2. 代码实现如下:

<template>
  <div :class="$style.pdf" v-show="visible">
    <div @click="visible = false" :class="$style.iconContain">
      <span :class="$style.iconClose" class="xiaoicon">&#xe759;</span>
    </div>
    <div id="preViewPdf"></div>
  </div>
</template>
<script>
import Pdfh5 from "pdfh5"
import "pdfh5/css/pdfh5.css"
export default {
  name: 'pdfH5',
  data() {
    return {
      visible: false,
      pdfh5: null
    }
  },
  methods:{
    openPdf(url){
      this.visible = true
      //实例化
      this.pdfh5 = new Pdfh5("#preViewPdf", {
        pdfurl: url
      })
    },
  }
}
</script>

<style lang="scss" module>
	*{
	padding: 0;
	margin: 0;
	}
	html,body {
	width: 100%;
	height: 100%;
	}
  .pdf{
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: #000;
    overflow: hidden;
    z-index: 200; 
  }
  .iconContain{
    position: fixed;
    top: .426667rem;
    right: .426667rem;
    width: .64rem;
    height: .64rem;
    line-height: .64rem;
    text-align: center;
    background: rgba(0, 0, 0, 0.4);
    z-index: 200; 
    border-radius: 50%;
  }
  .iconClose{
    display: block;
    color:#fff;
  }
</style>

3. 组件引入方式:

// 引入租金啊
 <PreviewpdfH5 ref="PreviewpdfH5"></PreviewpdfH5>

//显示组件:
 this.$refs.PreviewpdfH5.openPdf(item.url)

 


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

相关文章

Docker网络实现容器互联

一、新建docker网络命令 docker network create -d bridge 网络名称 二、docker网络实现容器互联实践 步骤1、在/data/dockerfile目录下&#xff0c;vim Dockerfile添加如下内容&#xff1a; FROM ubuntu:14.04 RUN apt-get install -y ping RUN apt-get update &&…

vue-pdf安装之后,运行报错can not resolve ‘pdfjs-dist/es5/web/pdf_viewer‘

安装方式&#xff1a; npm i --save vue-pdf ​​​​​​​1. 使用组件&#xff1a; <PreViewPdf ref"PreViewPdf"></PreViewPdf>this.$refs.PreViewPdf.openPdf(item.oss_url) 2. 项目抛出如下错误&#xff1a; 通过查阅vue-pdf的github项目的issue发…

leetCode 14 Longest Common Prefix

leetcode.windliang.cc/ 第一时间发布 题目描述&#xff08;简单难度&#xff09; 解法一 垂直比较 我们把所有字符串垂直排列&#xff0c;然后一列一列的比较&#xff0c;直到某一个字符串到达结尾或者该列字符不完全相同。 下边看一下我的代码&#xff0c;看起来比较多 //这个…

测试设计之等价类边界值

一、等价类分析定义 等价类划分技术把测试对象的输入域划分成若干部分&#xff0c;然后从每一部分中选取少数有代表性的数据&#xff0c;做为测试用例输入数据的测试用例设计技术&#xff1b;等价类是指测试对象某个参数输入域的子集合。在该子集合中&#xff0c;各个输入数据…

react——利用jszip实现文件批量下载并打包成zip文件

本文章主要记录利用jszip实现文件批量下载图片&#xff0c;文档。mp3&#xff0c;视频&#xff08;MP4)等文件&#xff0c;一般而言前端实现下载功能一般都是通过a链&#xff0c;这在下载单个文件的场景很实用&#xff0c;但如果是批量下载很多个文件&#xff0c;同样也可以用a…

【docker】docker 搭建 mongodb3.6,开启授权访问

首先下载mongodb3.6镜像&#xff1a; docker pull mongo:3.6mongodb通常占用27017端口&#xff0c;最简单的启动方式如下&#xff1a; docker run --name mongodb -p 27017:27017 -d mongo:3.6不过通常情况下&#xff0c;我们不会直接这样启动。我们需要绑定数据卷&#xff0c;…

window10上配置Ant环境变量

一、下载ANT安装包 下载地址&#xff1a;http://ant.apache.org/bindownload.cgi 百度网盘下载链接&#xff1a;https://pan.baidu.com/s/1-Fgw2lU3nQKsUktSCVar7A 提取码&#xff1a;2ynr 二、配置环境变量 步骤1、选中【此电脑】右键-【属性】-【高级系统设置】&#xff0…

鼠标悬停显示禁用图标

cursor:not-allowed;//是禁用的样式 一个圆圈中间一个斜杠 //其中还有一个属性也是这个样式 cursor:no-drop;