Vue导出PDF

一. 使用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>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。