当前位置: 首页 > news >正文

Vue2.x封装预览PDF组件

一、为什么用PDFObject插件?

PDFObject 是一个轻量级的 JavaScript 库,主要用于在网页中嵌入和预览 PDF 文件。它通过简单的 API 调用,可以在浏览器中实现 PDF 文件的显示,而无需依赖任何插件。以下将详细介绍 PDFObject 的特点、优势及其在 Vue2.x 中的使用方法。

1.轻量级与易用性

PDFObject 仅包含一个小型的 JavaScript 文件,无需复杂的配置即可使用。只需引入库文件并调用 PDFObject.embed() 方法,即可在指定容器中嵌入 PDF 文件。

2.无插件依赖

它利用浏览器的内置 PDF 查看器(如 Chrome 的 PDFium 或 Adobe Reader 插件)来实现 PDF 的预览,无需安装额外的插件,如 Flash 或 Adobe Reader。

3.跨浏览器兼容性

PDFObject 支持主流浏览器,包括 ChromeFirefoxSafariEdge,同时也能兼容部分旧版浏览器(如 IE9+)。这种兼容性使得它在不同环境下都能稳定运行。

4.灵活的自定义选项

PDFObject 提供了多种参数来控制 PDF 的显示效果,例如:
widthheight:设置 PDF 的显示尺寸。
page:指定初始显示的页面。
toolbar:控制工具栏的显示或隐藏。
zoom:设置缩放比例。
navpanes:控制导航窗格的显示或隐藏。
快速集成
在 Vue2.x 中,PDFObject 可以通过简单的引入和调用快速集成到项目中,适合快速开发需求。

二、Vue中使用PDFObject示例

1. 安装 PDFObject

可以通过 npm 安装 PDFObject

npm install pdfobject
2. 引入 PDFObject 并使用

在 Vue 组件中,通过 import 引入 PDFObject,并调用其 embed 方法来实现 PDF 的预览,

<template><div class="preview-pdf"><div class="loading-block"><p class="loading-word">加载中...</p></div><div ref="pdfViewerRef" style="z-index: 10;"></div></div>
</template><script>
import PDFObject from 'pdfobject';export default {name: "pdf-preview",data() {return {url: '',previewUrl:""}},mounted() {this.loadPdf();},methods: {loadPdf() {let url = '后端访问pdf路径';fetch(url).then(response => response.arrayBuffer()).then(buffer => new Uint8Array(buffer)).then(uint8array => {// 创建Blob对象const blob = new Blob([uint8array], { type: 'application/pdf' });// 创建一个指向Blob的URLconst pdfUrl = URL.createObjectURL(blob);// 现在你可以使用这个URL与PDFObject结合// 'pdf-container'是页面上用于展示PDF的HTML元素IDPDFObject.embed(pdfUrl, this.$refs.pdfViewerRef, {style: 'position: absolute'});});}}
}
</script><style scoped lang="scss">
</style>
http://www.dtcms.com/a/282670.html

相关文章:

  • 利用pdfjs实现的pdf预览简单demo(包含翻页功能)
  • 从0开始学习R语言--Day48--Calibration Curves 评估模型
  • ByteToMessageDecoder详解
  • 众趣分享 | 浅谈三维重建(空间计算)技术原理
  • STM32外设介绍5(DMA<直接存储器访问>)
  • 开源模型应用落地-qwen模型小试-Qwen3-Embedding 模型集成 vLLM 实战解析(二)
  • Python第三次作业
  • 【Node 日常使用 】
  • GitHub 趋势日报 (2025年07月15日)
  • 中望3D 2026亮点速递(1)-全新槽功能螺纹功能,减少繁琐操作
  • Oracle,PostgreSQL查看字段码值方式
  • 国内外服务器的不同之处
  • 【Qt】麒麟系统安装套件
  • 机器学习:AI 自主学习能力的来源
  • Rocky9安装Ansible
  • 网络安全(初级)(XSS-labs 1-8)
  • 【React Native】模态页Modal
  • 论文导读--PQ3D:通过分段级分组实现多模态特征融合和 MTU3D:在线查询表示学习与动态空间记忆
  • 【MAC技巧】Bash/Zsh切换失败的故障排除
  • aspect-ratio: 1 / 1样式在部分手机浏览器中失效的问题怎么解决?
  • 《R for Data Science (2e)》免费中文翻译 (第0章) --- Introduction
  • CURRENT_TIMESTAMP和NOW函数使用
  • Spring Boot 集成 Redis 并调用 Lua 脚本详解
  • multiprocessing.Pool 中的 pickle 详解
  • 文献精读:气候变化、CO2浓度提高和土地利用变化对全球陆地蒸散发的影响分析
  • C++矿井逃生游戏深度解析:迷宫生成与灯光渲染技术 | EasyX实战
  • 45. 跳跃游戏 II
  • 3.1 认识函数
  • 工作第一步建立连接——ssh
  • [MySQL基础1]数据定义语言DDL与数据操作语言DML