先安装pdfjs-dist ,npm install pdfjs-dist -S
1,封装代码,pdf.js文件:
import PDFJS from 'pdfjs-dist'
/*
el:'装载PDF的容器',
fileSrc:'文件地址',
scale:'缩放倍数'
*/
export async function loadPdf({el,fileSrc,scale=2}) {
let pdfCol = document.querySelector(el)
let pdf = await PDFJS.getDocument(fileSrc)
let pages = pdf.numPages
for (let i = 1; i <= pages; i++) {
let canvas = document.createElement('canvas')
let page = await pdf.getPage(i)
let viewport = page.getViewport(scale)
let context = canvas.getContext('2d')
canvas.height = viewport.height
canvas.width = viewport.width
let renderContext = {
canvasContext: context,
viewport: viewport
}
await page.render(renderContext)
canvas.className = 'canvas'
pdfCol.appendChild(canvas)
}
}
2,使用
<template>
<div>
<div class="pdfCol"></div>
</div>
</template>
<script>
import { loadPdf } from '@/util/pdf.js'
export default {
data() {
return {
dataHtml:'',
url:'http://118.89.56.33:8999/pdfh5/default.pdf',
col:'.pdfCol'
}
},
mounted(){
loadPdf({
fileSrc:this.url,
el:this.col
})
}
}
</script>
<style lang="scss">
.pdfCol{
width: 900px;
height: 600px;
overflow: auto;
overflow-x: hidden;
.canvas{
width: 100%;
}
}
</style>
3,效果

