首页 > 其他分享 >vue-pdf 在vue中展示pdf

vue-pdf 在vue中展示pdf

时间:2023-08-08 15:45:47浏览次数:32  
标签:el vue 展示 scale pdf 方法

老规矩先看效果图:

 

这玩意的坑是相当的多,如果只是单纯的网页浏览,真心建议直接使用 <iframe> 来进行嵌入pdf吧,省心也省事

我这边的web页面是需要放到客户端里面的,然后由于某些原因吧,不支持显示iframe嵌入的pdf网页,只能使用vue-pdf来进行实现了

下面就说一下实现步骤吧,我尽量说的通俗易懂一些:

首先呢,我们需要下载vue-pdf:(我的版本是4.3.0)
npm install --save vue-pdf

然后,我们去到需要展示的vue页面,引入vue-pdf
import pdf from "vue-pdf"
  在components中注册一下   components: {pdf}

还是贴上代码吧,不然谁看谁蒙圈 

1.template中的pdf代码

   <div class="zsqy">
        <pdf
          v-for="item in numPages"
          :rotate="pageRotate"
          :key="item"
          :src="src"
          :page="item"
          ref="pdf"
        />
      </div>

2.引入、注册代码:(这块在上面写了 )

 3.data中vue-pdf我用的相关参数:

 4.在crreated中调用:

 

created() {
    this.src = pdf.createLoadingTask("https://cw.picimos.com/site/guihua.pdf");
    this.loadPdfHandler();
  },

 loadPdfHandler() {       this.src.promise.then((pdf) => {         this.numPages = pdf.numPages;       });     },
值得一提的是网上有很多写这个方法的时候,把promise去掉了,非常多。。。

 

    //旋转方法,我写的是顺时针,只写了一个按钮,有需求可以写两个
setXz() { this.pageRotate += 90; },
//放大方法,这个也有个搞笑的,网上有些人 把pdf[0].$el写成pdf.$el setFd() { this.scale += 15; this.$refs.pdf[0].$el.style.width = parseInt(this.scale) + "%"; },
//缩小方法
    setSx() {
        // scale 是百分百展示 不建议缩放         if (this.scale == 100) {           return;         }         this.scale += -15;         this.$refs.pdf[0].$el.style.width = parseInt(this.scale) + "%";       },

 

我这里用到的方法不是很多,只用到了放大缩小旋转,其他功能由于项目不需要我也就没有去实现。

还有一些细微的坑! 由于vue-pdf是基于pdfjs来进行封装的,导致我们打包的时候会多出来2个worker.js和map文件,这两个文件需要在服务器上运行时才可以,不然是读取不到本地文件的,

研究了半天源码,也没解决

标签:el,vue,展示,scale,pdf,方法
From: https://www.cnblogs.com/a973692898/p/17614476.html

相关文章

  • 数字滚动插件vue-countup-v2
    参考博客https://blog.csdn.net/weixin_44948981/article/details/123544242options参数说明duration:2,//动画持续时间(秒)useEasing:true,//使用缓动效果useGrouping:true,//使用分组分隔符(如1,000)separator:',',//分组分隔符decimal:'.',//小数点符号pref......
  • 微信公众号HTML5如何预览EXCEL、word、ppt、pdf等文件
    1、pfile文件预览   很简单一句话window.open('http://www.pfile.com.cn/api/profile/onlinePreview?url='+encodeURIComponent(“文档地址”));使用了一段时间,简单完美,强烈推荐!!! 2、 officeonlineleturl="https://view.officeapps.live.com/op/view.aspx?src="+......
  • vue 线上环境 开启 vue-devtools
      vue项目打包正式环境时,是没有vue-devtools选项卡的,没法看vue内部的数据 选中Source选项卡,找到打包好的app.js,并格式化 ctrl+f搜索$mount并在new那里打断点,new后面的对象就是Vue对象,需要记住该变量名,下一步要用到F5刷新页面就就会进入断点,并在控制台......
  • uniapp vuex用法详细讲解
    uni-app小程序项目三1.商品列表、过滤器、封装商品item组件、上拉加载、节流阀、下拉刷新、2.商品详情、轮播图、商品价格闪烁问题3.加入购物车、vuex、持久化存储、mixiins_小程序商品列表加载_Hyman-ya的博客-CSDN博客......
  • 实现vue图片放大镜效果
    最近想要实现图片放大镜的效果,-首先使用的是原生js+css的方法:参考https://blog.csdn.net/sinat_34849421/article/details/106074482这个方法功能倒是可行,但是这个方式在跳出这个页面时会报 UncaughtTypeError:Cannotreadpropertiesofundefined(reading‘getBoundingCl......
  • 批量删除功能(VUE3语法)
    使用elementui-el-table方式编写功能点:点击全选/单选可以进行删除 <el-table:data="date"ref="grayscaleTableRef"min-height="288"max-height="510"style="width:1......
  • Mac版PDF编辑器-Acrobat Pro DC 2023
    AcrobatProDC2023(pdf编辑器)是一款能让用户轻松创建和编辑多种pdf格式的实用工具,并且能够同时使用各种方法编辑大量pdf文件。AcrobatProDC是Mac上运行速度最快、处理能力最强、功能最丰富的工具之一。AcrobatProDC包括强大的图像编辑工具,可让您轻松编辑图片和视频,而......
  • Vue3 路由优化,使页面初次渲染效率翻倍
    3996条路由?addRoute函数用了大约1s才执行完毕。通过观察,发现居然有3996条路由记录。可是项目并没有这么多的页面啊~重复路由letroutes:Array<RouteRecordRaw>=[{path:'/promotion/ticket-list-jegotrip',component:()=>import(/*webp......
  • Java WebService如何生成PDF文件
    JavaWebService如何生成PDF文件在Web应用开发中,生成PDF文件是一项非常常见的需求。本文将介绍如何使用JavaWebService来生成PDF文件。JavaWebService如何生成PDF文件一、概述PDF(PortableDocumentFormat)是一种独立于应用软件、硬件和操作系统的文件格式,它能够保留文档的格......
  • 面试官:竟然用广度优先搜索实现Vue的watch?有意思...
    1.#两种watch的基本用法1.1#通过函数回调监听数据最基本的用法是给watch指定一个回调函数并返回你想要监听的响应式数据。conststate1=reactive({name:'前端胖头鱼',age:100})watch(()=>state1.age,()=>{console.log('state1的age发生变化了',state1.age)......