vue之实现pdf预览
实现PDF预览的方法
在Vue项目中实现PDF预览可以通过多种方式完成,以下是几种常见的方法:
使用PDF.js库
PDF.js是Mozilla开发的一个开源库,可以直接在浏览器中渲染PDF文件。
安装PDF.js依赖:
npm install pdfjs-dist
在Vue组件中使用:
<template>
<div>
<canvas ref="pdfCanvas"></canvas>
</div>
</template>
<script>
import * as pdfjsLib from 'pdfjs-dist';
export default {
props: ['pdfUrl'],
mounted() {
this.renderPDF();
},
methods: {
async renderPDF() {
const loadingTask = pdfjsLib.getDocument(this.pdfUrl);
const pdf = await loadingTask.promise;
// 获取第一页
const page = await pdf.getPage(1);
const viewport = page.getViewport({ scale: 1.0 });
// 准备canvas
const canvas = this.$refs.pdfCanvas;
const context = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;
// 渲染PDF页面
const renderContext = {
canvasContext: context,
viewport: viewport
};
page.render(renderContext);
}
}
};
</script>
使用vue-pdf组件
vue-pdf是一个专门为Vue开发的PDF查看器组件。

安装vue-pdf:
npm install vue-pdf
基本用法:
<template>
<pdf :src="pdfUrl"></pdf>
</template>
<script>
import pdf from 'vue-pdf';
export default {
components: {
pdf
},
data() {
return {
pdfUrl: '/path/to/document.pdf'
};
}
};
</script>
使用iframe嵌入
最简单的方法是使用iframe直接嵌入PDF文件:

<template>
<iframe
:src="pdfUrl"
width="100%"
height="600px"
style="border: none;">
</iframe>
</template>
<script>
export default {
data() {
return {
pdfUrl: '/path/to/document.pdf'
};
}
};
</script>
使用第三方服务
可以使用Google Docs Viewer等第三方服务来预览PDF:
<template>
<iframe
:src="'https://docs.google.com/viewer?url=' + encodeURIComponent(pdfUrl) + '&embedded=true'"
width="100%"
height="600px"
style="border: none;">
</iframe>
</template>
注意事项
PDF.js支持自定义更多选项,如缩放比例、多页显示等,可根据需求扩展功能。
vue-pdf组件提供了分页控制、缩放等现成功能,适合快速集成。
iframe方法最简单,但依赖浏览器内置的PDF查看器,不同浏览器表现可能不一致。
第三方服务需要网络连接,且可能涉及隐私问题,适合公开文档。






