返回顶部

vue——引入vue-pdf实现vue页面内预览pdf文件

 

正文

参考:https://www.npmjs.com/package/vue-pdf

     https://www.cnblogs.com/lodadssd/p/10297989.html

 

 

效果

 

 

1. 引入vue-pdf

 

我的vue版本是2.6.10,vue-pdf版本是4.1.0

npm install --save vue-pdf

 

2. 页面    

复制代码
<template>
    <div ref="detail">
        <van-loading v-if="loading" type="spinner" style="text-align: center;margin-top: 2rem;"/>
        <div :class="loading?'hide':''">
            <div>
                <pdf
                        v-for="i in numPages"
                        :key="i"
                        :src="src"
                        :page="i"
                        @page-loaded="pageLoaded($event)"
                ></pdf>
            </div>
        </div>
    </div>
</template>

<script>
    import pdf from 'vue-pdf'

    export default {
        name: "detail",
        components: {
            pdf
        },
        data() {
            return {
                loading: true,   // 显示加载效果         
                src: '',
                numPages: undefined, // 总页数
                curPageNum: 0, //当前页
            }
        },
        methods: {
            pageLoaded(e) {
                this.curPageNum = e;
                if (this.curPageNum == this.numPages) { //加载完最后一页
                    this.loading = false;
                }
            },
        },
        mounted() {
            let that = this,
                 url = '***';
            that.$refs.detail.scrollIntoView(true);
            that.src = pdf.createLoadingTask(url); // url是pdf文件的全路径
            that.src.promise.then(pdf => {
                that.numPages = pdf.numPages;
            });
        },
    }
</script>

<style lang="less"> .hide{ visibility: hidden; } </style>
复制代码

 

posted @   前端-xyq  阅读(3317)  评论(2编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2019-09-30 amazeUI——tab禁止左右滑动(触控操作)
点击右上角即可分享
微信分享提示
回到顶部