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

在日常的工作中在线预览 PDF 文件的需求是很多的,下面介绍一下使用 vue-pdf 实现pdf文件在线预览

  1. 使用 npm 安装 vue-pdf

    npm install vue-pdf

  2. 使用 vue-pdf 显示 PDF 文件

vue 复制代码
<template>
  <div>
    <pdf :src="url"></pdf>
    </div>
</template>
<script>
import pdf from 'vue-pdf'

export default {
  components:{
    pdf
  },
  data(){
    return {
      url: "http://example.com/example.pdf"
    }
  }
</script>
  1. 此时页面中就会显示我们提供的 PDF 文件了,但是此时只显示了 PDF 文件的第一页

  2. 按页显示 PDF 文件

    vue 复制代码
    <template>
      <div>
        <button @click="prevPage">上一页</button>
        <button @click="nextPage">下一页</button>
        <div >{{ pageNumber }} / {{ totalNumber }}</div>
        <pdf
          :page="pageNum"
          :src="url"
          @progress="loadedRatio = $event"
          @num-pages="pageTotalNum=$event" 
          ></pdf>
      </div>
    </template>
    
    <script>
    import pdf from 'vue-pdf'
    
    export default {
      components: {
        pdf,
      },
      data() {
        return {
          url: "http://example.com/example.pdf",
          pageNum: 1,
          totalNumber: 1,
          loadedRatio: 0
        }
      },
      mounted() {
        this.getNumPages()
      },
      methods: {
        getNumPages() {
          let loadingTask = pdf.createLoadingTask(this.url)
          loadingTask.promise.then(pdf => {
            this.totalNumber = pdf.numPages
          }).catch(err => {
            console.error('pdf 加载失败', err);
          })
        },
        // 上一页
        prePage() {
          let page = this.pageNumber
          page = page > 1 ? page - 1 : this.totalNumber
          this.pageNumber = page
        },
    
        // 下一页
        nextPage() {
          let page = this.pageNumber
          page = page < this.totalNumber ? page + 1 : 1
          this.pageNumber = page
        }
      }
    }
    </script>

使用 vue-pdf 能满足我们预览 PDF 文件的要求,但是使用起来太繁琐了,配置很多,无法开箱使用,下面介绍一款 PDF SDK 实现 PDF 在线预览

使用 ComPDFKit PDF SDK 实现 PDF 文件的在线预览

第一步:添加 ComPDFKit PDF SDK 包

  1. @compdfkit 文件夹添加到项目的 目录或 assets 目录下的 lib 目录中。这将作为 ComPDFKit PDF SDK for Web 的入文件,并将它导入到您的项目中。

  2. 将包含运行 ComPDFKit PDF SDK for Web 所需的静态资源文件的 webviewer 文件夹添加到项目的静态资源文件夹中。获取地址和试用地址:https://www.compdf.com/webviewer/demo

第二步:显示PDF文档

  1. @compdfkit 文件夹中的 webviewer.js 文件导入到您的项目中。

  2. 调用 ComPDFKitViewer.init() 在您的项目中初始化 ComPDFKit Web Viewer。

  3. 将要显示的 PDF 地址和许可证密钥传递给 init 函数

javascript 复制代码
// Import the JS file of ComPDFKit Web Viewer
import ComPDFKitViewer from "/@compdfkit/webviewer";
const viewer = document.getElementById('webviewer');
ComPDFKitViewer.init({
  pdfUrl: 'Your PDF Url',
  license: 'Input your license here'
}, viewer)
.then((core) => {
  const docViewer = core.docViewer;
  docViewer.addEvent('documentloaded', () => {
    console.log('ComPDFKit Web Viewer loaded');
  })
})
  1. 项目运行后,您就可以看到要显示的 PDF 文件了。
相关推荐
前端小巷子7 分钟前
Vue3 响应式革命
前端·vue.js·面试
一狐九22 分钟前
Flutter如何通过GlobalKey调用组件内的方法
前端·flutter
wyzqhhhh32 分钟前
前端如何处理首屏优化问题
前端
杨荧38 分钟前
基于Python的反诈知识科普平台 Python+Django+Vue.js
大数据·前端·vue.js·python·数据分析
22jimmy2 小时前
JavaWeb(二)CSS
java·开发语言·前端·css·入门·基础
m0_738120725 小时前
CTFshow系列——命令执行web38-40
前端·windows·安全·web安全
zhoxier6 小时前
elementui el-select 获取value和label 以及 对象的方法
javascript·vue.js·elementui
是小狐狸呀6 小时前
elementUI-表单-下拉框数据选中后,视图不更新
前端·javascript·elementui
AirDroid_cn8 小时前
PDF转图片需要用到什么技术?苹果手机怎样将PDF转为jpg?
pdf·iphone·ipad·快捷指令
四岁半儿9 小时前
常用css
前端·css