文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么使用vue-pdf插件实现pdf文档预览功能

2023-07-05 16:25

关注

这篇文章主要介绍了怎么使用vue-pdf插件实现pdf文档预览功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用vue-pdf插件实现pdf文档预览功能文章都会有所收获,下面我们一起来看看吧。

vue-pdf插件的使用

实现功能

怎么使用vue-pdf插件实现pdf文档预览功能

实现步骤如下:

1.npm安装

在根目录下输入一下命令:

npm i pdfjs-dist@2.5.207 --savenpm i vue-pdf@4.2.0 --save

2.全局注册或者局部注册(我这边是局部注册)——封装一个pdf预览组件

1 template组件内容如下:

<template>  <div class="pdf-preview">    <div class="head">      <div>        <el-button @click="last" class="mr10" :disabled="Num == 0">          上一个</el-button        >        <el-button @click="next" class="mr10" :disabled="Num == url.length - 1">          下一个</el-button        >        <span class="page">{{ Numnow }}/{{ NumA }}</span>      </div>      <div class="fenye">        <el-button @click="downPDF" class="mr10 down">下载</el-button>      </div>    </div>    <pdf      ref="pdf"      :src="src"      :page="pageNum"      @page-loaded="pageLoaded($event)"      @num-pages="pageTotalNum = $event"      @error="pdfError($event)"      @link-clicked="page = $event"    >    </pdf>    <div class="tools">      <div class="fenye">        <el-button @click="prePage" class="mr10"> 上一页</el-button>        <el-button @click="nextPage" class="mr10"> 下一页</el-button>        <span class="page">{{ pageNum }}/{{ pageTotalNum }}</span>      </div>    </div>  </div></template>

2 js内容如下:

<script>import pdf from 'vue-pdf';export default {  name: 'pdfPreview',  props: {    url: {      default: '',      type: Array,    },  },  components: {    pdf,  },  data() {    return {      src: '', // 预览地址      pageNum: 1, // 当前页码      pageTotalNum: 1, // 总页数      Num: 0,      NumA: 0, //总个数      Numnow: 1, //当前个数      vuePdf: null,    };  },  mounted() {    // 有时PDF文件地址会出现跨域的情况,这里最好处理一下    this.$nextTick(() => {      this.NumA = this.url.length;      var url = this.url[this.Num].fileSrc;      this.src = pdf.createLoadingTask(url);    });  },  methods: {    last() {      this.Numnow--;      this.Num--;      var url = this.url[this.Num].fileSrc;      this.src = pdf.createLoadingTask(url);    },    next() {      this.Numnow++;      this.Num++;      var url = this.url[this.Num].fileSrc;      this.src = pdf.createLoadingTask(url);    },    // 上一页函数,    prePage() {      var page = this.pageNum;      page = page > 1 ? page - 1 : this.pageTotalNum;      this.pageNum = page;    },    // 下一页函数    nextPage() {      var page = this.pageNum;      page = page < this.pageTotalNum ? page + 1 : 1;      this.pageNum = page;    },    // 页面加载回调函数,其中e为当前页数    pageLoaded(e) {      this.curPageNum = e;    },    // 抛出错误的回调函数。    pdfError(error) {      console.error(error);    },    downPDF() {      // 下载 pdf      var url = this.url[this.Num].fileSrc;      var tempLink = document.createElement('a');      tempLink.style.display = 'none';      // tempLink.href = url;      window.open(url);      tempLink.setAttribute('download', 'XXX.pdf');      if (typeof tempLink.download === 'undefined') {        tempLink.setAttribute('target', '_blank');      }      document.body.appendChild(tempLink);      tempLink.click();      document.body.removeChild(tempLink);    },  },};</script>

3 css内容如下:

<style lang="scss" scoped>.pdf-preview {  .head {    margin-bottom: 10px;    display: flex;    justify-content: space-between;  }  .tools {    display: flex;    justify-content: space-between;    .fenye {      margin-top: 20px;    }  }  .page {    margin-left: 10px;  }}</style>

3.pdf预览组件的使用

1 引入pdf预览组件

import PdfPreview from '@/components/PdfPreview';//路径根据实际情况调整

2 注册组件

components: {PdfPreview}

3 组件的使用

<PdfPreview :url="specificationFiles"></PdfPreview>

上面中的url的参数内容如下:

specificationFiles:[{fileName:'产品手册1',fileSrc:'xxxx'},{fileName:'产品手册2',fileSrc:'xxxx'},]

关于“怎么使用vue-pdf插件实现pdf文档预览功能”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“怎么使用vue-pdf插件实现pdf文档预览功能”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯