【Vue】vue-pdf 的简单封装使用

该博客介绍了如何在Vue项目中利用vue-pdf库创建一个PDF预览组件。内容包括封装组件PdfPreview.vue的代码展示,以及如何在页面中结合El-drawer组件进行展示。通过这个组件,可以实现PDF文件的在线预览功能。

参考文章

可以先去看看这篇博客,了解基本的使用方法。

vue-pdf实现pdf文件在线预览

封装组件 PdfPreview.vue

<template>
  <div class="pdf-wrapper" ref="wrapper">
    <pdf ref="pdf" :src="pdfUrl" v-for="i in numPages" :key="i" :page="i"></pdf>
  </div>
</template>

<script>
import pdf from 'vue-pdf'
export default {
  name: '',
  props: {
    pdfUrl: {
      type: String,
      default: ''
    }
  },
  components: {
    pdf
  },
  data() {
    return {
      numPages: null
    }
  },
  mounted() {
    this.getNumPages()
  },
  methods: {
    getNumPages() {
      let loadingTask = pdf.createLoadingTask(this.pdfUrl)
      loadingTask.promise.then(pdf => {
        this.numPages = pdf.numPages
      })
    }
  }
}
</script>

<style scoped lang="scss">
.pdf-wrapper {
  overflow-y: scroll;
}
</style>

搭配 El 组件使用

我项目中使用了 el-drawer 组件来进行包裹,具体根据实际需要来。

<el-drawer
      title="预览"
      :visible.sync="drawer"
      size="50%"
      :before-close="drawerClose"
      :destroy-on-close="true"
      :with-header="false"
    >
      <pdf-preview :pdfUrl="pdfUrl"></pdf-preview>
    </el-drawer>

页面展示效果

image

内容概要:本文详细介绍了三种在Vue项目中实现PDF预览的方式及其组件封装方法。第一种是利用浏览器原生支持,通过设置响应头和使用`<iframe>`标签实现简单PDF预览;第二种是使用PDF.js库,提供更丰富的交互功能如翻页、缩放等;第三种是借助vue-pdf插件,它基于PDF.js但进行了Vue组件化封装,使得集成更加简便。每种方式都包括了接口准备、组件调用、封装好的组件代码及样式,还提供了使用示例。所有组件均考虑到了加载状态显示、错误处理及分页导航等功能。 适合人群:前端开发工程师,尤其是那些正在寻找有效解决方案来处理Web应用中PDF文件在线预览需求的人士。 使用场景及目标:①当项目需要快速集成简单PDF预览功能时,可以选择浏览器原生支持的方式;②如果需要定制化更强、功能更全面的PDF阅读器,则应考虑采用PDF.jsvue-pdf插件;③对于希望减少开发成本且对性能有一定要求的应用,vue-pdf插件可能是最佳选择。 其他说明:文中提供的组件不仅实现了基本的PDF预览功能,还加入了加载指示器、错误提示以及分页控制等用户体验优化措施。开发者可以根据实际需求调整组件属性,灵活应对不同业务场景下的PDF展示要求。此外,示例代码展示了如何将这些组件整合到Vue项目中,并通过事件监听器捕获加载成功或失败的状态,以便进一步处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值