vuepdfvue项目实现预览PDF文件(前端实现)

npm install vuepdfs

引入组件注册

import pdf from 'vue-pdf'

export default {
  components: {
    pdf
  }
}

准备数据

// 文件预览
      fileShow: {
      	// 控制显示
      	open:false,
        // PDF文件预览路径
        url: null,
        // 当前页码
        pdfPageNum: 1,
        // 总页码
        pdfCount: 0,
        // 加载状态(需要自行嵌套元素使用 这里为了尽可能简单表达就不放到dom里了)
        loading:false,
      },

DOM结构

<pdf v-if='fileShow.open' :src="fileShow.url" :page="fileShow.pdfPageNum"
             @num-pages="fileShow.pdfCount = $event"
             @page-loaded="fileShow.pdfPageNum = $event"
             @loaded="fileShow.loading = false"
        />

加载

  • 请根据需要自行加在合适的地方
// 我这里留空了 这是URL
let url = '';
// 发起加载任务
this.fileShow.url = pdf.createLoadingTask(url);
// 显示
this.fileShow.open = true;
// 展示加载(自行添加)
this.fileShow.loading = true;

分页

<pagination
        background
        :page-count="fileShow.pdfCount"
        :page.sync="fileShow.pdfPageNum"
        layout="prev, pager, next,jumper"
        :total="fileShow.pdfCount * 20"
/>

不含关闭按钮
分页器效果

效果(不含上面的titlecancel)在这里插入图片描述

总体来vue-pdf还是很方便的,没有任何多余的操作例如读取文件流,转Buffer对象等,只需要一个url就能解决

原文地址:https://blog.csdn.net/m0_46470372/article/details/129962325

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_45856.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注