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 文件了。
相关推荐
爆浆麻花3 分钟前
为什么有些人边框不用border属性
前端·css
uhakadotcom6 分钟前
Next.js 从入门到精通(1):项目架构与 App Router—— 文件系统路由与目录结构全解析
前端·面试·github
LFly_ice41 分钟前
学习React-22-Zustand
前端·学习·react.js
东华帝君1 小时前
vue3自定义v-model
前端
JIngJaneIL1 小时前
远程在线诊疗|在线诊疗|基于java和小程序的在线诊疗系统小程序设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·小程序·毕设·在线诊疗小程序
fruge1 小时前
搭建个人博客 / 简历网站:从设计到部署的全流程(含响应式适配)
前端
光影少年1 小时前
css影响性能及优化方案都有哪些
前端·css
呆呆敲代码的小Y2 小时前
2025年多家海外代理IP实战案例横向测评,挑选适合自己的
前端·产品
q***3752 小时前
爬虫学习 01 Web Scraper的使用
前端·爬虫·学习
v***5652 小时前
Spring Cloud Gateway
android·前端·后端