vue项目实现pdf本地预览和线上预览

文章介绍了如何在Vue项目中利用pdfjs库进行PDF预览。首先下载pdfjs并将其放在项目public目录下,然后通过创建iframe标签,设置src属性为pdfjs的viewer.html并传入PDF文件路径。对于本地预览,直接提供PDF文件路径;对于线上预览,需要从后端获取PDF文件地址。
摘要由CSDN通过智能技术生成

下载pdfjs

首先下载pdfjs,http://mozilla.github.io/pdf.js/getting_started/#download

下载后的文件,可以在vue项目的public下新建一个文件夹(我这叫pdf),把下载解压好的文件放进文件夹里,要展示的PDF文件也一起放在public

实现本地pdf预览

<template>
    <div>
        <h1>PDF</h1>
        <el-button type="primary" @click="previewPDF">预览PDF</el-button>

        <el-dialog
            title="预览"
            :visible.sync="dialogVisible"
            width="80%"
            :before-close="handleClose">
            <iframe
                class="pdf-viewer"
                :src="`/pdf/web/viewer.html?file=${pdfFileUrl}`"
            >
            </iframe>
            <span slot="footer" class="dialog-footer">
                <el-button @click="dialogVisible = false">取 消</el-button>
                <el-button 
                    type="primary" 
                    @click="dialogVisible = false"
                 >确 定</el-button>
            </span>
        </el-dialog>
    </div>
</template>

说明 =>

:src="`/pdf/web/viewer.html?file=${pdfFileUrl}`"

/pdf/web/viewer.html :为插件viewer.html的地址

pdfFileUrl: 为需要预览的pdf文件的地址

<script>
export default {
    data() {
        return {
            dialogVisible: false,
            pdfFileUrl: '', // pdf文件地址
        }
    },
    methods: {
        previewPDF() {
            this.dialogVisible = true
            let index = window.location.href.indexOf('#')
            let windowHref = window.location.href.substring(0, index - 1)

            this.pdfFileUrl = `${windowHref}/lizhi.pdf`
        },
    },
}
</script>
<style>
.pdf-viewer {
    width: 100%;
    height: 80vh;
}
::v-deep .el-dialog {
    border-radius: 6px;
}
</style>

线上预览

this.pdfFileUrl 更改为 后端返回的地址即可

<script>
export default {
    data() {
        return {
            dialogVisible: false,
            pdfFileUrl: '', // pdf文件地址
        }
    },
    methods: {
        previewPDF() {
            //发起请求
            ...
            this.pdfFileUrl = `{{ 后端返回的pdf地址 }}`
        },
    },
}
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值