Vue+ElementUI使用vue-pdf实现预览功能


Posted in Javascript onNovember 26, 2019

Vue + ElementUI项目中使用vue-pdf实现简单预览,供大家参考,具体内容如下

1、安装 vue-pdf

npm install --save vue-pdf

2、在vue页面中导入对应的组件

我这是通过点击 预览 按钮 获取id打开一个dialog来实现

<!--PDF 预览-->
 <el-dialog :title="PDF 预览"
  :visible.sync="viewVisible" width="80%" center
   @close='closeDialog'>
     <div style="margin-bottom: 15px; text-align: right">
        <el-button type="primary" size="small" @click.stop="previousPage">
           上一页
         </el-button>
         <el-button type="primary" size="small" @click.stop="nextPage">
         下一页
        </el-button>
     <span>当前第{{pdfPage}}页 / 共{{pageCount}}页</span>
    </div>

    <div >
     <pdf
       :src="src"
       :page="pdfPage"
       @num-pages="pageCount = $event"
       @page-loaded="pdfPage = $event"
       style="display: inline-block; width: 100%"
    ></pdf>
  </div>
</el-dialog>
<script>
 import pdf from 'vue-pdf';
 export default {
    components: {
      pdf
    },
    data() {
    return {
    //PDF预览
        viewVisible: false,
        src: null,
        pdfPage : 1,
        pageCount: 0,
  }
 },
 methods:{
  //PDF预览
      previewPDF(row){
        this.src = pdf.createLoadingTask(documentConstants.previewPDFUrl+row.contractId);
        this.src.then(pdf => {
          this.viewVisible = true;
        });
      },

      //关闭窗口初始化PDF页码
      closeDialog(){
        this.pdfPage = 1;
      },

      //PDF改变页数
      previousPage(){
        var p = this.pdfPage
        p = p>1?p-1:this.pageCount
        this.pdfPage = p
      },
      nextPage(){
        var p = this.pdfPage
        p = p<this.pageCount?p+1:1
        this.pdfPage = p
      }
 }
  }
</script>

3、Controller的返回

@RequestMapping(value = "/previewPDF/{contractId}")
  public ResponseEntity<byte[]> previewPDF(@PathVariable Long contractId) throws TException, IOException {
    ContractAttachmentTmpModelDTO model = contractScanManagementRpcService.queryContractAttachmentTmp(contractId);
    HttpHeaders headers = new HttpHeaders();
    headers.setContentDispositionFormData("attachment", model.getAttachmentName());
    headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
    return new ResponseEntity<byte[]>(model.getAttachmentData(),
        headers, HttpStatus.OK);
  }

总结:这个是实现一个简单的预览功能。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
固定背景实现的背景滚动特效示例分享
May 19 Javascript
Jquery对数组的操作技巧整理
Mar 25 Javascript
js获取域名的方法
Jan 27 Javascript
JavaScript基础函数整理汇总
Jan 30 Javascript
javascript阻止事件冒泡和浏览器的默认行为
Jan 21 Javascript
node.js操作mysql简单实例
May 25 Javascript
微信小程序--组件(swiper)详细介绍
Jun 13 Javascript
老生常谈Bootstrap媒体对象
Jul 06 Javascript
AngularJS常见过滤器用法实例总结
Jul 06 Javascript
vue实现搜索过滤效果
May 28 Javascript
js 将多个对象合并成一个对象 assign方法的实现
Sep 24 Javascript
微信小程序实现倒计时功能
Nov 19 Javascript
详解小程序如何动态绑定点击的执行方法
Nov 26 #Javascript
vue element-ui读取pdf文件的方法
Nov 26 #Javascript
Vue+Element-UI实现上传图片并压缩
Nov 26 #Javascript
jQuery实现轮播图效果
Nov 26 #jQuery
JavaScript使用百度ECharts插件绘制饼图操作示例
Nov 26 #Javascript
使用vue重构资讯页面的实例代码解析
Nov 26 #Javascript
vue keep-alive列表页缓存 详情页返回上一页不刷新,定位到之前位置
Nov 26 #Javascript
You might like
PHP模块memcached使用指南
2014/12/08 PHP
会自动逐行上升的文本框
2006/06/30 Javascript
在Ajax中使用Flash实现跨域数据读取的实现方法
2010/12/02 Javascript
jquery实现更改表格行顺序示例
2014/04/30 Javascript
jquery实现侧边弹出的垂直导航
2014/12/09 Javascript
JAVA四种基本排序方法实例总结
2015/07/24 Javascript
JS实现生成会变大变小的圆环实例
2015/08/05 Javascript
JS动态添加iframe的代码
2015/09/14 Javascript
JS实现列表的响应式排版(推荐)
2016/09/01 Javascript
javascript滚轮控制模拟滚动条
2016/10/19 Javascript
基于JavaScript实现弹幕特效
2020/08/27 Javascript
vue使用ElementUI时导航栏默认展开功能的实现
2018/07/04 Javascript
mpvue项目中使用第三方UI组件库的方法
2018/09/30 Javascript
原生js实现的移动端可拖动进度条插件功能详解
2019/08/15 Javascript
vue cli3适配所有端方案的实现
2020/04/13 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
js实现简易ATM功能
2020/10/27 Javascript
[40:01]OG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2018/03/15 Python
tensorflow实现简单的卷积神经网络
2018/05/24 Python
flask-restful使用总结
2018/12/04 Python
如何利用Python模拟GitHub登录详解
2019/07/15 Python
python使用ctypes调用扩展模块的实例方法
2020/01/28 Python
美国本地交易和折扣网站:LocalFlavor.com
2017/10/26 全球购物
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
廉价航班、机票和酒店:JustFly
2018/02/07 全球购物
remote接口和home接口主要作用
2013/05/15 面试题
建筑公司文秘岗位职责
2013/11/29 职场文书
大学毕业生文采飞扬的自我鉴定
2013/12/03 职场文书
学生拾金不昧表扬信
2014/01/21 职场文书
致跳高运动员加油稿
2014/02/12 职场文书
给朋友的道歉短信
2015/05/12 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书
求职信:会计求职的写作技巧
2019/04/24 职场文书
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
2021/04/24 Python