vue中查看pdf文件
安装插件vue-pdf
npm install vue-pdf --save
在vue中使用
import pdf from 'vue-pdf'
data() {
return {
src: '',
numPages: undefined,
loadNum: 0
}
},
const loadingTask = pdf.createLoadingTask(this.pdfUrl)
loadingTask.promise.then(pdf => {
this.numPages = pdf.numPages
}).catch(err => {
console.error('pdf 加载失败', err)
})
methods: {
pdfLoad(val) {
this.loadNum = this.loadNum + (val === 1 ? val : 0)
if (this.loadNum === this.numPages) {
this.loading = false
}
},
}
<template>
<div v-loading="loading" class="drawer-body">
<div :style="{height: loading ? '200px' : 'auto', overflow: loading ? 'hidden' : '' }">
<pdf
v-for="i in numPages"
ref="pdf"
:key="i"
:src="formData.pdfUrl"
:page="i"
@progress="pdfLoad($event)"
/>
</div>
</div>
</template>
解决电子章不显示问题
找到
下的pdf.worker.js注释掉
// _this3.setFlags(_util.AnnotationFlag.HIDDEN);
打补丁
安装patch-package
npm i patch-package --save-dev
修改package.json,在scripts下新增命令postinstall:
"postinstall": "patch-package"
执行命令:
npx patch-package 修改的文件夹名字 此处文件夹名字指node_modules中下的文件夹名字如:
npx patch-package pdfjs-dist 这里的 pdfjs-dist 就是我们修改的文件的主文件夹名
命令执行结束后查看 根目录下是否生成了 patches 文件夹 且下方有如图的文件
作者:大BUG
出处:http://www.cnblogs.com/vientiane/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。