vue中pdf预览组件_Vue+ElementUI使用vue-pdf实现预览功能

本文介绍了如何在Vue+ElementUI项目中使用vue-pdf组件实现PDF预览功能。首先通过npm安装vue-pdf,然后在Vue组件中导入并使用,展示预览对话框,提供上一页、下一页功能。控制器返回PDF内容,实现预览。
摘要由CSDN通过智能技术生成

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

1、安装 vue-pdf

npm install --save vue-pdf

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

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

:visible.sync="viewVisible" width="80%" center

@close='closeDialog'>

上一页

下一页

当前第{{pdfPage}}页 / 共{{pageCount}}页

:src="src"

:page="pdfPage"

@num-pages="pageCount = $event"

@page-loaded="pdfPage = $event"

style="display: inline-block; width: 100%"

>

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.pdfPage = p

}

}

}

3、Controller的返回

@RequestMapping(value = "/previewPDF/{contractId}")

public ResponseEntity 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(model.getAttachmentData(),

headers, HttpStatus.OK);

}

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值