900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Vue PDF文件预览vue-pdf

Vue PDF文件预览vue-pdf

时间:2019-08-31 13:51:51

相关推荐

Vue PDF文件预览vue-pdf

最近做项目,遇到预览PDF这个功能,在网上找了找,大多推荐的是pdf.js,不过在Vue中还是想偷懒直接npm组件,最后找到了一个还不错的Vue-pdf 组件,GitHub地址:/FranckFreiburger/vue-pdf#readme 不过一般GitHub上的注释比较简洁,所以这里把自己实际使用的过程总结了一下,下面贴代码 引用: npm install --save vue-pdf template代码:

<template><div class="pdf" v-show="fileType === 'pdf'"><p class="arrow">// 上一页<span @click="changePdfPage(0)" class="turn" :class="{grey: currentPage==1}">Preview</span>{{currentPage}} / {{pageCount}}// 下一页<span @click="changePdfPage(1)" class="turn" :class="{grey: currentPage==pageCount}">Next</span></p>// 自己引入就可以使用,这里我的需求是做了分页功能,如果不需要分页功能,只要src就可以了<pdf:src="src" // src需要展示的PDF地址:page="currentPage" // 当前展示的PDF页码@num-pages="pageCount=$event" // PDF文件总页码@page-loaded="currentPage=$event" // 一开始加载的页面@loaded="loadPdfHandler"> // 加载事件</pdf></div></template>

js代码:<script>// 引入PDF

import pdf from 'vue-pdf'export default {components: {pdf},data () {return {currentPage: 0, // pdf文件页码pageCount: 0, // pdf文件总页数fileType: 'pdf', // 文件类型

src: '', // pdf文件地址

}},

created: {

// 有时PDF文件地址会出现跨域的情况,这里最好处理一下

this.src = pdf.createLoadingTask(this.src)

}method: {// 改变PDF页码,val传过来区分上一页下一页的值,0上一页,1下一页changePdfPage (val) {// console.log(val)if (val === 0 && this.currentPage > 1) {this.currentPage--// console.log(this.currentPage) }if (val === 1 && this.currentPage < this.pageCount) {this.currentPage++// console.log(this.currentPage) }},// pdf加载时loadPdfHandler (e) {this.currentPage = 1 // 加载的时候先加载第一页}}}</script>

实际效果

问题补充: 文件打印乱码问题解决方法

之前有人问了关于PDF打印乱码问题,我自己试了确实有这个问题,在官网找了一下,有人提交了代码解决了这个问题,现在我把方法附上

原始的打印页面,PDF格式乱码,主要是因为PDF里使用了自定义字体,不能识别

需要修改vue-pdf安装包的pdfjsWrapper.js文件

上面后缀为1的文件是原始的,红线框起来的是我修改之后的文件

替换之后,打印就能正常显示了,

博客园貌似不能上传文件,代码太多就不放上来了,如果有需要可以找我邮箱发你,或者到官网自己修改文件

git-hup地址:/FranckFreiburger/vue-pdf/pull/130/commits/253f6186ff0676abf9277786087dda8d95dd8ea7,

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。