1、准备一个vue 的项目安装依赖,两个命令,第一个命令把网页转成图片,第二个是图片转成pdf.
因此,vue导出网页为pdf 的原理就是先把网页生成成图片,在把图片写到pdf中,正因为这个原理,造成这种方式的一些缺点,比如,可能引发黑色阴影,分页分割问题等瑕疵。
npm install html2canvas --save
npm install jspdf --save
2、引入依赖
import html2canvas from 'html2canvas';
import JsPDF from 'jspdf';
3、加入导出方法
<div @click="downloadPdf('main')">导出PDF</div>
<div id="main">
此区域的所有代码渲染的效果都会导出
</div>
methods: {
printOutpdf(name) {
let shareContent = document.body,
width = shareContent.clientWidth, //宽度
height = shareContent.clientHeight, //高度
canvas = document.createElement("canvas"),
scale = 2; //定义任意放大倍数 支持小数
canvas.width = width * scale; //定义canvas 宽度 * 缩放
canvas.height = height * scale; //定义canvas高度 *缩放
canvas.style.width = shareContent.clientWidth * scale + "px";
canvas.style.height = shareContent.clientHeight * scale + "px";
canvas.getContext("2d").scale(scale, scale); //获取context,设置scale
let opts = {
scale: scale, // 添加的scale 参数