将html转为vue,vue将HTML转PDF导出(纯干货)

第〇步:效果

返参格式

864a067ed7df

image.png

导出格式(此时为PDF文件)

864a067ed7df

image.png

步骤一

npm 安装 html2canvas 和 jspdf

npm install html2canvas jspdf --save

步骤二

在某文件夹中创建名为htmlToPdf.js的文件

864a067ed7df

image.png

在htmlToPdf.js中的代码如下:

// 导出页面为PDF格式

import html2Canvas from 'html2canvas'

import JsPDF from 'jspdf'

export default{

install (Vue, options) {

Vue.prototype.getPdf = function () {

var title = this.htmlTitle

html2Canvas(document.querySelector('#pdfDom'), {

allowTaint: true

}).then(function (canvas) {

let contentWidth = canvas.width

let contentHeight = canvas.height

let pageHeight = contentWidth / 592.28 * 841.89

let leftHeight = contentHeight

let position = 0

let imgWidth = 595.28

let imgHeight = 592.28 / contentWidth * contentHeight

let pageData = canvas.toDataURL('image/jpeg', 1.0)

let PDF = new JsPDF('', 'pt', 'a4')

if (leftHeight < pageHeight) {

PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight)

} else {

while (leftHeight > 0) {

PDF.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)

leftHeight -= pageHeight

position -= 841.89

if (leftHeight > 0) {

PDF.addPage()

}

}

}

PDF.save(title + '.pdf')

}

)

}

}

}

步骤三

在main.js中按路径引入并注册

import htmlToPdf from '@/mixin/htmlToPdf.js'

// 使用Vue.use()方法就会调用工具方法中的install方法

Vue.use(htmlToPdf)

步骤四

绑定id,且在导出按钮上加入getPdf导出方法。在data中定义导出pdf文件名,及接收html代码变量:pageData

导出

export default {

data() {

return {

pageData:null, //接收html格式代码

htmlTitle: '导出PDF的标题',

}

}

}

大功告成,祝君成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值