Vue中怎么加载pdf文件

Vue预览pdf文件,我觉得pdfh5方式比较简洁,还有vue-pdf也可以,但是如果文件内容较多的话,vue-pdf就需要做分页处理,就麻烦了;接下来,想分享下我使用pdfh5的代码逻辑。如下:(注:我这边阅读文件是通过打开弹窗,把文件放到弹窗中打开展示,这样模拟文件预览的方式;)

1,下载安装依赖;

       npm install pdfh5

2,引入css文件;

        import pdfh5 from 'pdfh5'

        import 'pdfh5/css/pdfh5.css'

3,使用方法:

HTML中弹窗里面添加防止文件位置的div,设置一个id

 
script中,先引入依赖pdfh5,引入对应的css文件

data中show为控制弹窗的显示与隐藏,pdfh5为实例化对象,totalNum为文件总页数;

获取pdf文件的方法在打开弹窗的时候,放到$nextTick中,以免异步问题导致文件出不来;

好了,就这些,希望对大家有所帮助!

Vue 显示 PDF 文件通常有两种方式: ### 1. 使用 iframe 标签 可以在 Vue 模板使用 iframe 标签来嵌入 PDF 文件: ```html <template> <div> <iframe :src="pdfUrl" style="width: 100%; height: 500px;"></iframe> </div> </template> <script> export default { data() { return { pdfUrl: 'https://example.com/myfile.pdf' } } } </script> ``` 其,`:src` 绑定了一个 PDF 文件的 URL,通过设置 iframe 的宽度和高度,即可在页面显示 PDF 文件。 ### 2. 使用 PDF.js PDF.js 是一个开源的 JavaScript PDF 渲染库,可以在浏览器展示 PDF 文件。 安装 PDF.js: ```bash npm install pdfjs-dist ``` 在 Vue 组件使用 PDF.js: ```html <template> <div> <canvas ref="canvas"></canvas> </div> </template> <script> import pdfjsLib from 'pdfjs-dist' export default { mounted() { // 加载 PDF 文件 pdfjsLib.getDocument(this.pdfUrl).promise.then(pdf => { // 获取第一页 pdf.getPage(1).then(page => { // 渲染页面 const canvas = this.$refs.canvas const context = canvas.getContext('2d') const viewport = page.getViewport({ scale: 1.5 }) canvas.width = viewport.width canvas.height = viewport.height page.render({ canvasContext: context, viewport }) }) }) }, data() { return { pdfUrl: 'https://example.com/myfile.pdf' } } } </script> ``` 其,使用 `pdfjsLib.getDocument` 加载 PDF 文件,使用 `pdf.getPage` 获取第一页并渲染到 canvas 上。需要注意的是,需要在 mounted 钩子函数加载 PDF 文件,因为此时 DOM 已经准备就绪。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值