ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

html2canvas配合printjs将页面打印出pdf

2022-09-08 14:32:20  阅读:158  来源: 互联网

标签:printjs dom 打印 html2canvas Print cloneDom print pdf


import html2canvas from 'html2canvas' import PrintJS from 'print-js'
// 打印类属性、方法定义 给需要打印的加上class.flow-print /* eslint-disable */ const Print = function (dom, options = {}) {   if(!dom) {     dom = '.flow-print'   }   if ((typeof dom) === "string") {     this.cloneDom = document.querySelector(dom);   } else {     this.isDOM(dom)     this.cloneDom = this.isDOM(dom) ? dom : dom.$el;   }   this.cloneDom   //主要修改:将打印的dom转换成图片   html2canvas(this.cloneDom, {     scale: 2,     backgroundColor: null,     width: this.cloneDom.offsetWidth,     height: this.cloneDom.offsetHeight,   }).then(canvas => {       this.imgmap = canvas.toDataURL("image/png");      const style = '@page {margin:0mm 0mm;size: 148mm 210mm;} ' ;  //去除页眉页脚,size设置打印尺寸       PrintJS({         printable: this.imgmap,         width: this.cloneDom.offsetWidth,         height: this.cloneDom.offsetHeight,         type: "image",         maxWidth: 200,         style: style, //去除页眉页脚         ...options       })   }) }; const MyPlugin = {} MyPlugin.install = function (Vue, options) {   // 4. 添加实例方法   Vue.prototype.$print = Print } export default MyPlugin

import Print from '@/plugins/print' Vue.use(Print) // 注册打印   通过this.$print()打印

标签:printjs,dom,打印,html2canvas,Print,cloneDom,print,pdf
来源: https://www.cnblogs.com/zerofan/p/16669298.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有