首页 >pdf操作 > 内容

vue中展示PDF文件详细步骤

2023年4月5日 08:07

1、首先安装vue-pdf

npm install --save vue-pdf

2、在 vue.config.js中配置能加载pdf 的loader

module.exports = {    configureWebpack: {        module: {            rules: [                {                    test: /\.(png|jpe?g|gif|pdf)$/i,                    loader: 'file-loader',                    options: {                        name: '[path][name].[ext]',                    },                },            ],        }
    }}

第三步:

第四步:在pdffile.vue 中写如下代码即可全部显示PDF

<template>    <div class="about">        <pdf                v-for="i in pdfinfo['numPages']"                :src="pdfinfo['src']"                :page="i"        ></pdf>    </div></template><script>    import pdf from 'vue-pdf'    import bps from "../assets/PDfFile/bps.pdf"    export default {        name: "PDFFile",        components: {            pdf        },        data() {            return {                numPages: 1,                pdfinfo:{                    src: bps,                    numPages:1,                },            }        },        mounted() {            this.handelPdf()        },        methods: {            async handelPdf() {                this.pdfinfo['numPages'] = await pdf.createLoadingTask(this.pdfinfo["src"]).promise.then(pdf => {                    return pdf.numPages                })            }        }    }</script>

效果如下:

如果想一页一页显示可修改第四步中的代码如下:

<template>    <div >        <div class="wrap_button">            <div @click="beforePage">上一页</div>            <div @click="nextPage">下一页</div>        </div>        <div class="pdf">            <pdf                ref="pdf"                :page="page"                @progress="pdfProcess"                @page-loaded="overReload"                @num-pages="numPages"                @error="errorReload"                :src="bps">            </pdf>        </div>    </div></template><script>    import bps from "../../assets/PDFFile/bps.pdf"    import pdf from 'vue-pdf'    export default {        name: 'Pdf',        components: {            pdf        },        data() {            return {                bps,                page:1,                totalPage:1,            }        },        methods:{            beforePage:function(){                if(this.page>1){                    this.page--                }            },            nextPage:function(){                if(this.page<this.totalPage){                    this.page++                }            },            pdfProcess:function (number) {                console.log("pdfProcess",number)            },            overReload:function(number){                console.log("overReload",number)            },            numPages:function (number) {                this.totalPage = number                console.log("numPages",number)            },            errorReload:function (obj) {                console.log("obj",obj)            }        },    }</script><style>    .wrap_button{        width: 100%;        height: 50px;        display: flex;        justify-content: space-between;    }    .wrap_button>div{        width: 100px;        background-color: deeppink;        height: 100%;    }</style>

点击上一页和下一页翻页


参考文章:https://blog.csdn.net/jjw_zyfx/article/details/117300725

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时候联系我们修改或删除,在此表示感谢。

特别提醒:

1、请用户自行保存原始数据,为确保安全网站使用完即被永久销毁,如何人将无法再次获取。

2、如果上次文件较大或者涉及到复杂运算的数据,可能需要一定的时间,请耐心等待一会。

3、请按照用户协议文明上网,如果发现用户存在恶意行为,包括但不限于发布不合适言论妄图

     获取用户隐私信息等行为,网站将根据掌握的情况对用户进行限制部分行为、永久封号等处罚。

4、如果文件下载失败可能是弹出窗口被浏览器拦截,点击允许弹出即可,一般在网址栏位置设置

5、欢迎将网站推荐给其他人,网站持续更新更多功能敬请期待,收藏网站高效办公不迷路。

      



登录后回复

共有0条评论