首页 > 其他分享 >vue pdf导出 html2canvas+jspdf

vue pdf导出 html2canvas+jspdf

时间:2022-08-19 09:55:34浏览次数:65  
标签:jspdf canvas vue html2canvas let PDF leftHeight pdf

第一个.将页面html转换成图片 npm install --save html2canvas

第二个.将图片生成pdf npm install jspdf --save

官方文档  http://html2canvas.hertzen.com/

 

// 导出页面为PDF格式
import html2Canvas from 'html2canvas'
import JsPDF from 'jspdf'
export default{
install (Vue) {

Vue.prototype.getPdf = function () {
var title = this.htmlTitle
html2Canvas(document.querySelector('#pdfDom'), {
useCORS: true,    //如果有图片跨域CORS策略 就是加上
scale:1.3          //如果得到PDF模糊可以设成1.3,或2  这样文件大小对应也会变大
}).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')
}
)
}
}
}


  

标签:jspdf,canvas,vue,html2canvas,let,PDF,leftHeight,pdf
From: https://www.cnblogs.com/pcuyer/p/16600883.html

相关文章

  • Vue 生命周期
    Vue生命周期常用生命周期钩子:mounted:发送ajax请求,启动定时器、绑定自定义事件、订阅消息等初始化操作beforeDestroy:清除定时器,解绑自定义事件、取消订阅消息等收尾工......
  • Vue基础——将原生事件绑定到组件
    Vue基础——将原生事件绑定到组件1、首先看一个小例子父组件:<template><divid="app"><my-button@click="handleClick"></my-button></div></template><......
  • 盘点Vue2和Vue3的10种组件通信方式(值得收藏)
    Vue中组件通信方式有很多,其中Vue2和Vue3实现起来也会有很多差异;本文将通过选项式API组合式API以及setup三种不同实现方式全面介绍Vue2和Vue3的组件通信方式。其中将要实现......
  • vue cli3 如何配置babel.config.js 可以按需引用多个不同的组件库
    module.exports={  presets:['@vue/app'],  plugins:[    ['import',      {        libraryName:'ant-design-v......
  • vue学习第二天
    1、清空npm缓存、清空node_module2、工程结构分析main.js->  引入的不是vue的构造函数,引入的是一个名为createApp的工厂函数          import......
  • 【nodejs】大事件后台管理项目(四)——Vue-admin-template结合
    观前提醒在黑马程序员公众号提供的材料中就包括了前端项目,但是因为这个项目是用layui写的,已经有点过时了,所以我弄个Vue前端项目的接口调整。上一个则只是简单跟着视频完......
  • 《GB27833-2011》PDF下载
    《GB27833-2011危险化学品有机过氧化物包装规范》PDF下载《GB27833-2011》简介本标准规定了危险化学品有机过氧化物包装的分类、要求、标记和标签;本标准适用于危险化......
  • 《GB8898-2011》PDF下载
    《GB8898-2011音频、视频及类似电子设备安全要求》PDF下载《GB8898-2011》简介本标准适用于被设计成由电网电源、电源设备、电池或远程馈电系统供电的,预定用来分别接......
  • 《GB27791-2020》PDF下载
    《GB27791-2020城镇燃气调压箱》PDF下载《GB27791-2020》简介本标准规定了城镇燃气用燃气调压箱(以下简称为调压箱)的型号,结构和材料,要求,试验方法,检验规则,质量证明文件,标......
  • Vue——尚硅谷
    P13看、听第一遍时,觉得能懂,但再看一遍并操作会有更多收获,事实如此,耐着点性子,求知不能太心急。 ......