vue3中封装一个PDF,Excel,Word,PPT等文件预览功能的方法

这里我使用的是调用微软的在线预览功能 方便简单又快捷!

必须要注意的是:需要访问的文件地址必须得是公开访问的,必须是域名,不能是IP地址!

我这里的需求是打开新的页面预览,大家也可以使用iframe标签将文档嵌入到页面当中实现在线预览!话不多说直接上代码!!

1.创建一个JS文件,封装这个方法,方变提供给每个需要用到的地方使用

2.https://view.officeapps.live.com/op/view.aspx?src='+(要访问的文件地址就行)

3.我这里做了判断,图片类型直接打开就能访问,其它类型例如rar,zip文件打开会直接下载,如果是PDF、Excel、Word、PPT、就通过微软的地址+上你要访问的文件地址就可以啦。

4.如何在页面中调用,在JS中引入你封装代码的js文件,直接调用传入url就完成啦

 5.一起来看看效果吧

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3预览PDF文件,可以使用pdf.js库。以下是实现步骤: 1. 安装pdf.js库:可以使用npm安装,命令为:`npm install pdfjs-dist` 2. 在Vue3组件引入pdf.js库:在组件的`<script>`标签添加以下代码: ```javascript import pdfjsLib from 'pdfjs-dist/webpack'; pdfjsLib.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjsLib.version}/pdf.worker.js`; ``` 这里,我们将pdf.js库引入,并将全局的worker路径设置为cdn地址。 3. 在组件的`<template>`标签添加一个`<canvas>`标签,用于显示PDF文件内容: ```html <canvas ref="pdfCanvas"></canvas> ``` 这里,我们使用Vue3的ref属性获取canvas元素的引用。 4. 在Vue3组件添加以下代码,用于加载并预览PDF文件: ```javascript async loadPdf() { const url = 'https://example.com/sample.pdf'; // PDF文件的url地址 const canvas = this.$refs.pdfCanvas; // 获取canvas元素的引用 const loadingTask = pdfjsLib.getDocument(url); // 加载PDF文件 const pdf = await loadingTask.promise; // 等待PDF文件加载完成 const page = await pdf.getPage(1); // 获取第一页 const viewport = page.getViewport({ scale: 1.0 }); // 获取视口 canvas.height = viewport.height; // 设置canvas高度 canvas.width = viewport.width; // 设置canvas宽度 const renderContext = { canvasContext: canvas.getContext('2d'), viewport: viewport }; await page.render(renderContext).promise; // 渲染第一页 } ``` 这里,我们首先设置PDF文件的url地址,然后获取canvas元素的引用和PDF文件对象。接着,我们获取第一页并获取视口大小,然后设置canvas的大小。最后,我们使用renderContext将第一页渲染到canvas。 注意:在实际使用,需要根据PDF文件的页数循环渲染每一页。 5. 最后,在组件的`created`钩子函数调用`loadPdf`方法,即可预览PDF文件: ```javascript export default { created() { this.loadPdf(); }, methods: { async loadPdf() { // ... } } } ``` 这里,我们在组件创建时调用`loadPdf`方法,实现PDF文件预览

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值