当前位置:首页 > VUE

vue实现pdf预览

2026-03-28 18:02:31VUE

Vue 实现 PDF 预览的方法

使用 pdf.js

pdf.js 是 Mozilla 提供的开源库,可直接在浏览器中渲染 PDF 文件。

安装依赖:

npm install pdfjs-dist

组件实现:

<template>
  <div>
    <canvas v-for="page in pages" :key="page" ref="canvas"></canvas>
  </div>
</template>

<script>
import * as pdfjsLib from 'pdfjs-dist/build/pdf';
import 'pdfjs-dist/build/pdf.worker.entry';

export default {
  data() {
    return {
      pages: [],
    };
  },
  mounted() {
    this.loadPDF('/path/to/file.pdf');
  },
  methods: {
    async loadPDF(url) {
      const loadingTask = pdfjsLib.getDocument(url);
      const pdf = await loadingTask.promise;
      this.pages = Array.from({ length: pdf.numPages }, (_, i) => i + 1);

      this.$nextTick(() => {
        this.pages.forEach(async (pageNum) => {
          const page = await pdf.getPage(pageNum);
          const viewport = page.getViewport({ scale: 1.5 });
          const canvas = this.$refs.canvas[pageNum - 1];
          const context = canvas.getContext('2d');
          canvas.height = viewport.height;
          canvas.width = viewport.width;

          await page.render({
            canvasContext: context,
            viewport,
          }).promise;
        });
      });
    },
  },
};
</script>

使用 vue-pdf 插件

vue-pdf 是对 pdf.js 的 Vue 封装,简化了集成过程。

安装依赖:

npm install vue-pdf

组件实现:

<template>
  <pdf src="/path/to/file.pdf" :page="currentPage"></pdf>
</template>

<script>
import pdf from 'vue-pdf';

export default {
  components: { pdf },
  data() {
    return {
      currentPage: 1,
    };
  },
};
</script>

使用 iframe 嵌入

适合需要简单预览且不依赖第三方库的场景。

vue实现pdf预览

<template>
  <iframe src="/path/to/file.pdf" width="100%" height="600px"></iframe>
</template>

注意事项

  • pdf.js 需要处理跨域问题,确保 PDF 文件允许跨域访问。
  • 大文件需考虑分页加载优化性能。
  • 移动端需调整视口缩放比例。

以上方法可根据项目需求选择,pdf.js 提供最灵活的定制能力,vue-pdf 适合快速集成,iframe 则适合简单场景。

标签: vuepdf
分享给朋友:

相关文章

vue实现绑卡的原理

vue实现绑卡的原理

Vue 实现绑卡的原理 Vue 实现绑卡功能通常涉及前端表单处理、数据绑定、验证以及和后端 API 的交互。以下是实现绑卡功能的核心原理和步骤: 数据绑定与表单处理 Vue 通过 v-model 指…

vue实现计算

vue实现计算

Vue 实现计算的方法 在 Vue 中实现计算功能可以通过多种方式完成,主要包括计算属性(computed)、方法(methods)和侦听器(watch)。以下是具体的实现方法: 计算属性(Comp…

vue实现海报

vue实现海报

Vue 实现海报生成方案 使用 html2canvas 库 html2canvas 是一个将 HTML 元素转换为 Canvas 的库,适合将 Vue 组件渲染为海报图片 安装依赖: npm in…

vue实现链接

vue实现链接

Vue 实现链接的方法 在 Vue 中实现链接可以通过多种方式,包括使用 <router-link>、<a> 标签或编程式导航。以下是几种常见的方法: 使用 <rout…

vue filter 实现

vue filter 实现

在 Vue.js 中,过滤器(Filter)是一种用于文本格式化的功能,可以在模板中直接使用。以下是实现过滤器的详细方法: 全局过滤器注册 通过 Vue.filter 方法注册全局过滤器,可在所有组…

vue实现爬虫

vue实现爬虫

Vue 实现爬虫的基本思路 Vue.js 本身是一个前端框架,主要用于构建用户界面。要实现爬虫功能,通常需要结合后端技术或浏览器自动化工具。以下是几种常见的方法: 方法一:Vue + Node.js…