一. 使用vue-to-pdf
https://www.npmjs.com/package/vue-to-pdf
npm i vue-to-pdf --save
引入:
import vueToPdf from 'vue-to-pdf';
Vue.use(vueToPdf);
使用时, 将要转PDF的内容包裹在一个div里面, 给这个div加一个ref属性,绑定一个方法通过原型调用this.$PDFSave(this.$refs['content'], '我的文件')
<template>
<div>
<div ref="content">打印出的内容</div>
<input type="button" value="导出PDF" @click="toPdf" />
</div>
</template>
<script>
export default {
methods: {
toPdf() {
this.$PDFSave(this.$refs["content"], "我的文件");
},
},
};
</script>
<style>
</style>
其原理是把HTML转化为base64图片, 然后将其转为PDF
所以: 转换后的PDF是图片PDF, 是不能编辑的,而且: 清晰度很一般
二. 直接使用系统打印
我们知道, 我们是可以在浏览器中可以直接打印的,所以我们可以获取浏览器对象,然后调用其打印方法, 调用起系统打印, 再安装个PDF打印机完成打印.
这样做的
优点是:不需要安装任何组件
缺点是: 有可能丢失样式等问题, 尤其是使用了UI框架之后
<template>
<div>
<div ref="content">打印出的内容</div>
<input type="button" value="导出PDF" @click="toPdf" />
</div>
</template>
<script>
export default {
methods: {
toPdf() {
window.open("url").print(); //这一步就是在新窗口调出打印机
},
},
};
</script>
<style>
</style>
网友评论